сначала вы должны обновить thisNode
после цикла, потому что arrayList
обращено к thisNode
.
Следующая проблема может заключаться в том, что вы устанавливаете iterator.iterateNext();
на новый var thisNode
внутри цикла while вместо обновления var thisNode
внутри своего блока try.(из-за var
перед ним)
Попробуйте это::)
var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
try {
var thisNode = iterator.iterateNext();
while (thisNode) {
var arrayList = thisNode.textContent;
for (var i = 0; i < arrayList.length; i++) {
console.log(arrayList[i]);
}
thisNode = iterator.iterateNext();
}
} catch (e) {
dump('Error: Document tree modified during iteration ' + e);
}
Как упомянул Стивен, thisNode.textContent
- это строка.Я не знаю, как выглядит твое жало, но, возможно, тебе сначала нужно split()
, или, если это JSONstring, ты должен использовать JSON.parse()
, чтобы получить свой массив.
Но, есливаши thisNode.textContext
s должны быть элементами вашего массива, попробуйте это:
var iterator = document.evaluate('xpathgoeshere', document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
try {
var thisNode = iterator.iterateNext();
var arrayList = [];
while (thisNode) {
arrayList.push(thisNode.textContent);
thisNode = iterator.iterateNext();
}
console.log(arrayList);
for (var i = 0; i < arrayList.length; i++) {
console.log(arrayList[i]);
}
} catch (e) {
dump('Error: Document tree modified during iteration ' + e);
}