Javascript 如何获取HTML集合的第一个元素?

Javascript 如何获取HTML集合的第一个元素?,javascript,Javascript,我有以下代码返回HTML集合中的1个元素: var message = document.getElementsByClassName('short-description shipp-info'); //Returns collection with 1 div element, which is what I want //Returned value from message; HTMLCollection [] 0: div.short-description.ship

我有以下代码返回HTML集合中的1个元素:

var message = document.getElementsByClassName('short-description shipp-info'); //Returns collection with 1 div element, which is what I want

//Returned value from message;
    HTMLCollection []
    0: div.short-description.shipp-info
    length: 1
    __proto__: HTMLCollection
但是,当我尝试获取第一个元素时,它返回undefined:

    var message = document.getElementsByClassName('short-description shipp-info')[0]; //Returns undefined
     //or
    message[0]; //Returns undefined

这就是我一直从HTML集合中检索第一个元素的方式,它一直工作到现在。我不知道为什么它不起作用。控制台中也没有报告错误,只是未定义错误。

getElementsByClassName是一个实时HTML集合。因此,当元素从页面中添加和删除时,它将添加和删除元素。因此,如果添加元素,它将显示在集合中。下面的例子

var test=document.getElementsByClassName(“foo”);
console.log(“before”,test.length);
var d=document.createElement(“div”);
d、 className=“foo”;
document.body.appendChild(d)
console.log(“添加后”,测试长度);
d、 className=“bar”;

log(“删除类后”,test.length)请提供一个我以前用过的方法,它返回了我想要的元素,正如我上面所说的。当我需要一个特定的元素时,它不会返回。我们需要看一个它如何失败的例子。我的猜测是,您试图在元素存在之前找到它……结果证明@epascarello是正确的,元素尚未加载。我将它包装在window.onload函数中,元素现在显示出来了。非常感谢。