我有两组div。 Fist集被分配了类名tD
,而另一个具有类tU
。 tD
/ 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--;
}
答案 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 ){}