0

いくつかの段落をソートする Javascript を作成しようとしています。これは、私がソートしている HTML の小さなスニピットです。

<p>Brown, John, 2010, <a href="#">Link</a></p>

<p>Bush, C.A., 2010, <a href="#">Link</a>: More info.</p>

<p><br></p>
<h3><a name="c">C</a></h3>

<p>Caine, J.S., and Minor, S.A., 2010, <a href="#">Link</a>: More</p>

この Javascript は、「2010」を含むエントリ (4 つの段落のうちの 3 つ) を探しています。

var paras = document.getElementsByTagName("p");
alert( paras.length );  // 4, which is what I expect!

for( i=0; i < paras.length ; i++ ) {
    var node0_text = paras[i].childNodes[0].nodeValue;

    if ( node0_text.indexOf('2010') ) {
        alert( node0_text ); // not returning everything that I expect it to.
    };
}

これを実行すると、最初の 2 つのエントリ ("Brown" と "Bush") がアラート ボックスに表示されます。その後、スクリプトは死んでいるようです。3 番目 (「Caine」) のエントリは表示されません。ここで何がうまくいかなかったのですか?ご意見ありがとうございます。

それへのリンク: http://jsfiddle.net/Jrmy/6MP2W/5/

4

1 に答える 1

3

「ケイン」のエントリは第 4段落にあります。3 番目の段落にテキストがないため、スクリプトは失敗します。

これは 3 番目の段落です。

<p><br></p>

テキストはnullifステートメントが にアクセスしようとして例外を取得するようになっています.indexOf()

(編集<br>— 良いコメントは、タグの値がチェックされていることを指摘していますが、それも null です。)

于 2013-02-01T22:09:38.010 に答える