2

<li>-Listing内の-Elementsを数えようとしました<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

編集:ああ、ええ。私はあなたのためにフィドルをしました

4

2 に答える 2

5

あなたの問題は、この行です:

var ul = document.getElementById('listing');

あなたが存在する前に実行されていますul。スクリプト全体を の下に移動するか</ul>、コードをwindow.onload/$(document).readyコールバックに配置するか、単にその行を関数に移動します (これにより、ul変数のスコープがその関数にローカルに設定されます)。

function countLi(){
    var ul = document.getElementById('listing');
    alert("There are "+ul.getElementsByTagName('li').length+" Li-Elements in this Documnet!");
}
于 2012-05-30T16:03:42.633 に答える
2

このように試してください。コード ブロックがレンダリングされたときに、Listing 要素の準備ができていません。

function countLi(){
    var ul = document.getElementById('listing');
    alert("There are "+ul.getElementsByTagName('li').length+" Li-Elements in this Documnet!");
    }
于 2012-05-30T16:03:28.150 に答える