我已经声明了一个变量padding
,在一个警报中它给出了没有问题的值。
但是,当我使用:
document.getElementsByTagName("td").style.height = padding;
我收到错误Uncaught TypeError: Cannot set property 'height' of undefined index.html:46
(anonymous function)
!
虽然padding
是正确值!!!
现在什么是错的!?
注意:index.html:46是上面显示的行。
答案 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)
可能会出现两个问题:
td
元素,并且返回undefined。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;
}
}