为了账号安全,请及时绑定邮箱和手机立即绑定

这个为什么获取不到table的tr的length呢

var tr = document.getElementsByTagName("tr");
document.write(tr.length);

//输出0


正在回答

6 回答

发现我刚刚那个回答没有说到点上,重答一遍。

题目给的代码,script部分是在head中的,先于body的内容执行,所以在执行这两句代码的时候,页面中根本就没有表格,于是输出的长度为0.

改进方法为:在<input type="button" value="添加一行"  />之后,写上以下代码,

<script type="text/javascript">

       var tr = document.getElementsByTagName("tr");

            document.write(tr.length);

 </script> 

这样,在访问tr的length属性时,页面中就有三行了,于是输出结果为3.

你可以观察你的代码写在head和写在body里面的时候,数字0和数字3的输出位置,0是表格之前输出的,而3是在表格之后输出的。

1 回复 有任何疑惑可以回复我~
#1

79351 提问者

非常感谢~~~
2018-04-06 回复 有任何疑惑可以回复我~

 var table = document.getElementById("table");

document.write(table.childNodes.length);

我用这个,可以顺利输出。


0 回复 有任何疑惑可以回复我~

var tr = document.getElementsByTagName("br")  ;  你里面写的是br 不是tr  当然是0啦

0 回复 有任何疑惑可以回复我~
#1

79351 提问者

不行啊,我换tr也输出0啊
2018-03-29 回复 有任何疑惑可以回复我~
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var tr = document.getElementsByTagName("br")
			document.write(tr.length)
		</script>
	</head>
	<body>
		<table>
			<tr><td>1</td><td>2</td><td>3</td></tr>
			<tr><td>1</td><td>2</td><td>3</td></tr>
			<tr><td>1</td><td>2</td><td>3</td></tr>
		</table>
	</body>
</html>

//谢谢回答,不过我这个为什么输出是0啊


0 回复 有任何疑惑可以回复我~

不好意思,弄错了,我试了,你这个代码是可以正确输出tr的length

function getLength(){
            var tr = document.getElementsByTagName("tr");
            document.write(tr.length);
        }

0 回复 有任何疑惑可以回复我~
var tr = document.getElementsByTagName("tr");

document.write(tr[0].length);

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个为什么获取不到table的tr的length呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信