问答详情
源自:9-22 编程练习

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

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

//输出0


提问者:79351 2018-03-27 22:57

个回答

  • qq_long妹_0
    2018-04-05 21:55:21
    已采纳

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

    题目给的代码,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是在表格之后输出的。

  • qq_long妹_0
    2018-04-05 21:38:27

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

    document.write(table.childNodes.length);

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


  • 人生最美是清欢
    2018-03-28 17:52:26

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

  • 79351
    2018-03-28 15:26:51

    <!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啊


  • K8sCat
    2018-03-28 13:58:09

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

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

  • K8sCat
    2018-03-28 13:52:20

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

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