Я работал над сценарием для Greasemonkey (FX7), пытающимся удалить определенные ссылки, и обнаружил, что по какой-то причине та, которая была в источнике, а не скрыта или сконструирована JS, не появилась в массиве, который эта функция возвращает.
Если бы он был создан с помощью JS при запуске этой страницы, меня это не удивит, но он находится прямо за другой найденной ссылкой.
Так кто-нибудь знает, почему это происходит и как я могу обойти это?
var links = document.getElementsByTagName("a");
for (var l in links){
if (links[l].href == "blah"){ ... }
}
Вот как я пытался работать с ними, немного урезанный, так как у меня было еще несколько проверок, чтобы не столкнуться с пустыми значениями и тому подобное.
О sidenote: мне было интересно, почему эта функция вообще возвращает нулевые записи.
Редактировать: Я прошел эту проблему давно, так как я обратился за помощью и нашел хороший способ сделать это:
for (var i = 0, l; l = links[i]; i++) { }
Устанавливает l для текущей ссылки, пока не останется ни одной. Работает хорошо.