3

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

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

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

而那个whilepadding是一个正确的值!!!

那么现在,错了!?

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

4

5 回答 5

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;
}
于 2013-07-22T09:02:11.740 回答
1

它是由 getElementsByTagName 给出的节点列表

尝试:

document.getElementsByTagName("td")[0].style.height = padding;
于 2013-07-22T09:02:40.400 回答
1

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

于 2013-07-22T09:03:08.257 回答
1

尝试这个

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

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

于 2013-07-22T09:04:41.033 回答
1

可能会出现两个问题:

  1. 您的 html 不包含td元素,它返回未定义。
  2. 它包含td但多个,因此您需要进行索引。

尝试这个:

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;
   }
}
于 2013-07-22T09:13:01.930 回答