#javascript #html
#javascript #HTML
Вопрос:
Я пытаюсь создать кнопку, которая ссылается на случайную страницу на моем простом веб-сайте. У меня возникают проблемы с изменением «href» и переходом на страницу по щелчку.
Вот JavaScript, который я написал:
document.addEventListener("DOMContentLoaded", function(){
let arrayofpages = ["my_cat.html","about_me","art.html","index.html"]
let randompage = arrayofpages[Math.floor(Math.random()*arrayofpages.length)];
document.addEventListener("click",function(){
document.getElementById("lucky_btn").href = "${randompage}";
document.getElementById("lucky_btn").innerHTML = "random page";
});
Комментарии:
1. » $ {randompage} » отсутствует в вашем списке, используйте обратные кавычки вместо двойных кавычек при написании литерала шаблона.
2. спасибо, я внес эту корректировку, но она по-прежнему не работает:(
3.
.href = randompage
4. Пожалуйста, не редактируйте вопрос в соответствии с комментариями или ответами, такое редактирование делает недействительными существующие ответы.
5. Кроме того, ваш код, похоже, отлично работает с обратными ссылками.
Ответ №1:
Строка «$ {randompage}» — это буквально просто строка, которая говорит "${randompage}"
. Вместо этого используйте обратные ссылки:
`${randompage}` // This creates a string out of the variable randompage
Но в вашем случае, поскольку вы ничего не делаете со строкой, самый простой способ — использовать переменную напрямую:
document.getElementById("lucky_btn").href = randompage;
В общем, литералы шаблонов более полезны для вставки переменных в более длинную строку, например
let name = 'Sarah';
let quality = 'great';
let message = `Hello ${name}, have a ${quality} day`;
Ответ №2:
Небольшая ошибка в вашем коде. вы использовали двойные кавычки ""
вместо ``
обратных меток.
Эта строка
document.getElementById("lucky_btn").href = "${randompage}";
должно быть
document.getElementById("lucky_btn").href = `${randompage}`;
Ответ №3:
Я обнаружил ошибку, которая вызывала проблему, не перенаправляя на случайную страницу:
вместо
document.getElementById("lucky_btn").href = "${randompage}";
там, где я должен был использовать обратные ссылки, я изменил код на:
document.location.href = `${randompage}`;
и это решило проблему!