我试图在<li>
- 列表中计算<ul>
- 元素。我希望它能像这样工作:
(JavaScript):
var ul = document.getElementById('listing');
function countLi(){
alert("There are "+ul.getElementsByTagName('li').length+" Li-Elements in this Documnet!");
}
(HTML):
<input type="button" onclick="countLi()" value="Count the Li's!"/>
<ul id="listing">
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
它告诉我,“ul为null”。那我的错在哪里?
亲切的问候, vogti
编辑: 啊,是的I did a Fiddle for you
答案 0 :(得分:5)
你的问题是这一行:
var ul = document.getElementById('listing');
在ul
存在之前执行。将您的整个脚本移动到</ul>
下面,将代码放在window.onload
/ $(document).ready
回调中,或者只是将该行移到您的函数中(这也会使您的{{1}变量本地作用于该函数):
ul
答案 1 :(得分:2)
尝试这样。当你的代码块被渲染时,列表元素没有准备就绪。
function countLi(){
var ul = document.getElementById('listing');
alert("There are "+ul.getElementsByTagName('li').length+" Li-Elements in this Documnet!");
}