Почему в восьмой строке выдаёт ошибку Cannot convert elements[x] to object ?
Code
var elements = document.getElementsByTagName('span'); for (var x = 0; x < elements.length; x++) { if (elements[x].className == 'forumViewed') { AJAX(elements[x].parentNode.getElementsByTagName('a')[0].href, function (res) { var nodes = res.getElementsByTagName('td'); for (var i = 0; i < nodes.length; i++) { if (nodes[i].className == 'forumOnlineBar') { elements[x].innerHTML = '[' + nodes[i].innerHTML.replace('$USERNAME$', '') + ']'; } } }); } }
function AJAX(url, callback) { var request = window.XMLHttpRequest() ? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP"); request.open('GET', url, true); request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) { var node = document.createElement('div'); node.innerHTML = request.responseText; callback(node); } } } request.send(null); }
Задача такая: все надписи "Форум просматривают:" заменить на ники тех, кто его просматривает.
Почему-то скрипт последним выбирает 141-й SPAN (а на странице их 140), отсюда видимо и ошибка. Ставил проверку, чтобы скрипт не выбирал этот SPAN… вообще ничего не работает и консоль ошибок молчит. Мистика.
Забил и собрал нужные SPAN'-ы в отдельный массив, и по нему уже циклом.