我有一个函数应该相当简单,并且应该在加载后完成,以减少初始加载时间。
基本上我使用这段代码来获取类“prefImg”的所有元素并用它们做一些事情。但是在firebug中调试时,它说var divsList未定义。
function populatePrefsList()
{
var divsList = new Array();
divsList = document.getElementsByClassName("prefImg");
var x = divsList.length;
var i = 0;
for(i=0; i<divsList.length; i++) {
var imgs = divsList[i].getElementsByTagName("img");
var imgSRC = imgs[0].src;
var alt = imgs[0].alt;
var descs = divsList[i].getElementsByTagName("h4");
var desc = descs[0].innerHTML;
//var thisPref = new preference(imgSRC, alt, desc);
//prefsList[i] = thisPref;
}
}
显然我已经断点了var x = divsList.length
...
我无法理解这一点,我最初将脚本放在页面的 Head 中,但认为它可能尚未加载 div,因此将其移动到了 Body 的底部。这并没有解决它。
我已经有了var divsList = document.getElementsByClassName("prefImg");
如果有人能告诉我哪里出了问题,我将不胜感激。大约有 50 个带有 className 的 divprefImg
.
Cheers
您可以使用 querySelectorAll 而不是 getElementsByClassName:
change divsList = document.getElementsByClassName("prefImg");
to this divsList = document.querySelectorAll(".prefImg");
DEMO - http://jsfiddle.net/ya3gU/ http://jsfiddle.net/ya3gU/
顺便说一句,您不需要在设置数组 divsList 之前声明它。做就是了:
var divsList = document.querySelectorAll(".prefImg");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)