Javascript document.getElementsByClassName 返回未定义 [英] Javascript document.getElementsByClassName returning undefined

查看:61
本文介绍了Javascript document.getElementsByClassName 返回未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个应该相当简单的函数,应该在加载后完成以减少初始加载时间.

I have a function which should be fairly straightforward and is supposed to be done after loading in order to reduce initial load time.

基本上,我使用这段代码来获取所有具有prefImg"类的元素并用它们做一些事情.但是在firebug中调试时,它说var divsList未定义.

Basically I am using this code to get all of the elements with class "prefImg" and do some stuff with them. But when debugging in firebug, it says that the var divsList is undefined.

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 的底部.这并没有解决它.

I have had var divsList = document.getElementsByClassName("prefImg");

我有 var divsList = document.getElementsByClassName("prefImg");

如果有人能告诉我哪里出错了,我将不胜感激.大约有 50 个具有 className prefImg 的 div.

Cheers

干杯

推荐答案

您可以使用 querySelectorAll 代替 getElementsByClassName:

change divsList = document.getElementsByClassName("prefImg");

change divsList = document.getElementsByClassName("prefImg");

到这个divsList = document.querySelectorAll(".prefImg");

演示 - http://jsfiddle.net/ya3gU/

顺便说一句,您不需要在设置数组 divsList 之前声明它.就这样做:

BTW, you do not need to declare the array divsList before you set it. Just do:

var divsList = document.querySelectorAll(".prefImg");

这篇关于Javascript document.getElementsByClassName 返回未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆