开发者社区> 问答> 正文

关于JS查询HTML中p元素个数的问题

代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <body>
        <div id = "test">
            <p>
                <h2></h2>
            </p>
            <p></p>
        </div>
        <script>
            var test = document.getElementById("test"),
                ele = test.firstChild,
                count = 0;
             
            while(ele) {
                if(ele.nodeType == 1 && ele.nodeName == "P") {
                    count ++;
                }
                ele = ele.nextSibling;
            }
            console.log(count);
        </script>
    </body>
</html>

本来我认为这里只会查询到两个p,结果发现结果是查询到3个,我使用jquery的sizzle来看,它返回结果也是一样的,我不知道这是为什么?

展开
收起
a123456678 2016-07-07 16:21:36 2117 0
1 条回答
写回答
取消 提交回答
  • XHTML中块类标记不能放在P中。类似的还有div,table等。个别浏览器的容错处理是在和h2前后分成两个段落,所以就变成了三个P标记。

    2019-07-17 19:52:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载