对td元素抛出异常应用填充

时间:2013-07-22 09:00:34

标签: javascript css

我已经声明了一个变量padding,在一个警报中它给出了没有问题的值。 但是,当我使用:

document.getElementsByTagName("td").style.height = padding;

我收到错误Uncaught TypeError: Cannot set property 'height' of undefined index.html:46 (anonymous function)

虽然padding是正确值!!!

现在什么是错的!?

注意:index.html:46是上面显示的行。

5 个答案:

答案 0 :(得分:10)

document.getElementsByTagName("td")返回NodeList,就像Array一样,您可以这样做:

document.getElementsByTagName("td")[0].style.height = padding;

或者在循环中执行:

var tds = document.getElementsByTagName("td");

for(var i=0 , len = tds.length; i<len; i++){
   tds[i].style.height = padding;
}

答案 1 :(得分:1)

它是由getElementsByTagName

给出的节点列表

尝试:

document.getElementsByTagName("td")[0].style.height = padding;

答案 2 :(得分:1)

请检查'document.getElementsByTagName(“td”)'是否为空。 错误消息显示无法设置未定义的属性“高度”。 'padding'没有问题

答案 3 :(得分:1)

试试这个

 document.getElementsByTagName("td")[0].style.height = padding;

getElementsByTagName()方法返回具有指定标记名的元素子元素的集合,作为NodeList对象。

答案 4 :(得分:1)

可能会出现两个问题:

  1. 您的html不包含td元素,并且返回undefined。
  2. 它包含td但只有多个,因此您需要进行索引编制。
  3. 试试这个:

    var tds = document.getElementsByTagName("td");
    if(tds != undefined)
       tds[0].style.height = padding;
    

    var tds = document.getElementsByTagName("td");
    if(tds != undefined){
       for(var i=0 , len = tds.length; i<len; i++){
          tds[i].style.height = padding;
       }
    }