Есть такой код:
let l =
document.getElementsByTagName("a");
for (k in l){
l[k].onclick = function(){
alert(this.href);
return false;
}
}
Он должен вывести адрес ссылки, я получаю undefined. Пробовал ещё так:
let l =
document.getElementsByTagName("a");
for (k in l){
l[k].onclick = function(){
alert(l[k].href);
return false;
}
}
Результат такой же. Подскажите, что я делаю не так?
Для получения значения атрибута элемента используйте getAttribute
. В вашем случае, код будет выглядеть так:
let l = document.getElementsByTagName("a");
for (k in l){
l[k].onclick = function(){
alert(this.getAttribute('href'));
return false;
}
}
Первый пример и так работает, а во-втором, ты пропустил инициализацию переменной, как и в первом, но в отличии от первого, второй, что бы от заработал надо в место var
выбрать let
подробнее тут ответ Grundy
let l =
document.getElementsByTagName("a");
for (let k in l) {
l[k].onclick = function() {
alert(l[k].href);
return false;
}
}
<a href="https://ya.ru">https://ya.ru</a>
<a href="https://google.com">https://google.com</a>
Вполне всё работает:
let l = document.getElementsByTagName("a");
for (k in l) {
l[k].onclick = function() {
console.log(this.href);
return false;
}
}
<a href="http://google.com" id="ttt">test</a>
<a href="http://go123ogle.com" id="tt23t">test2</a>
возможно ваш код выполняется до загрузки всего документа?
Думаю, что в данном случае лучше использовать for..of
for (let anchor of document.getElementsByTagName("a")) {
anchor.addEventListener('click', doNothing);
}
const doNothing = e => {
console.log(e.target.getAttribute('href'));
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, уважаемые коллеги! Осваиваю Spring MVC уверенными шагами, но есть один вопрос на который не могу найти внятного ответаВ данный момент...
$mix - массив объединяет массивы со словами, разделенными по пробеламarray_unique в данном случае не работает и на выходе слова дублируются
В документации NGINX указано, что минимально необходимые параметры это: