代码如下:
<!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来看,它返回结果也是一样的,我不知道这是为什么?
XHTML中块类标记不能放在P中。类似的还有div,table等。个别浏览器的容错处理是在和h2前后分成两个段落,所以就变成了三个P标记。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。