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”)会像我预期的那样在警报框中弹出。然后脚本似乎死了。它不显示第三个(“Caine”)条目。这里出了什么问题?感谢您的任何意见。

它的链接:http: //jsfiddle.net/Jrmy/6MP2W/5/

4

1 回答 1

3

“Caine”条目在第四段。脚本失败,因为第三段没有文本。

这是第三段:

<p><br></p>

文本是null这样的,if声明获得了尝试访问的异常.indexOf()

编辑——一个好的评论指出它是<br>正在检查值的标签,但这也是空的。)

于 2013-02-01T22:09:38.010 回答