javascript undefined nodelist返回true

时间:2014-05-13 17:11:58

标签: javascript html css html5 css3

我有两组div。 Fist集被分配了类名tD,而另一个具有类tUtD / tU可能未定义。在tU未定义的情况下,tD !== null在chrome中返回true。它实际上返回[]。为什么会这样?

var tD = document.getElementsByClassName("t-d"); // undefined
var tDLength = tD.length;
var tU = document.getElementsByClassName("tU"); //defined
var tULength = tU.length;

while (tU !== null && triangle_up_length > 0) {
        tU[tULength - 1].style.borderLeftWidth = 128 + "px";
        tU[tULength - 1].style.borderRightWidth = 128 + "px";
        tULength--;
}
while (tD !== null && triangle_down_length > 0) {
    tD[tDLength - 1].style.borderLeftWidth = 128 + "px";
    tD[tDLength - 1].style.borderRightWidth = 128 + "px";
    tULength--;
}

3 个答案:

答案 0 :(得分:1)

while (tU.length > 0)会做你想做的事。

document.getElementsByClassName返回一个空节点列表(几乎是数组),如果没有找到,则不应检查null

答案 1 :(得分:0)

竞争reedit:

if( tU ) {
   if( tU.length > 0 ) {
      //do the stuff
   }
{

答案 2 :(得分:0)

这是GetElementByClassName

的标准行为

" ..返回具有所有给定类名的所有子元素的类数组对象。"。然后你必须检查

 if( tD.length != 0 ){}