if (imgels[i].src.indexOf(parse(url)) != -1){
imgarr = imgels[i];
}
похоже, что вы перезаписываете массив одним элементом в вышеприведенном коде.
Добавлена правка:
Если условие if выполнено, imgels[i]
элемент (с src
), но вместо добавления imgels [i] в массив imgarr
вы изменяете imgarr
, чтобы указывать на один элемент.
Затем во втором цикле for вы рассматриваете его как массив.
На самом деле, это тоже ошибка во втором цикле.imgarres
должен быть массивом или нет?Если это так, то imgarres = imgarr[p];
неверно (после этого он указывает на элемент).Если это не так, то var z = imgarres[0].src;
не так (если это элемент, вам не нужен [0]
).
Добавлено редактирование:
somearray = someelement;
не добавляет элемент в массив!
somearray.push(someelement);
делает.
Добавлено редактирование: попробуйте вместо этого.Кто знает, это может сработать ...
function imgprocess(text){
// get all IMG elements below the div
imgels = text.getElementsByTagName("IMG");
// filter them somehow
imgarr = [];
for (var i=0;i< imgels.length;i++){
if (imgels[i].src.indexOf(parse(url)) != -1){
imgarr.push(imgels[i]);
}
}
// filter again, could probably be joined into one loop
imgarres = [];
for (var p=0; p< imgarr.length; p++){
if (imgarr[p].parentNode.nodeName=="A"){
imgarres.push(imgarr[p]);
}
}
// return the first image's src if any
if (imgarres.length > 0) {
return imgarres[0].src;
}
return null;
}