html5 - 关于HTML中的节点数量计算方式?
怪我咯
怪我咯 2017-04-17 13:38:01
[HTML讨论组]

我的问题是class为dd下的节点数量为什么是6个,而不是7个?
附上代码




    
    测试



我是文字1

节点


我是文字2

节点

节点


我是文字3

节点

节点


我是文字4

节点

节点

节点


class为aa下一共有0个节点

class为bb下一共有0个节点

class为cc下一共有0个节点

class为dd下一共有0个节点

谢谢。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
怪我咯

p 元素无法嵌套其他 p 元素(The P element represents a paragraph. It cannot contain block-level elements (including P itself).)

所以 dd 实际产生的结构与问题里贴出的不同,而是会被浏览器更改为:

<p class="dd">
    我是文字4
    <p>节点</p><p>节点</p><p>节点</p><p></p>
</p>

所以 6 个元素如下:

但问题的 html 宽松一点评价的话也不算错,因为 p 的开始标记是必须的,但结束标记某些情况下可以省略。

The start tag is mandatory. The end tag may be omitted if the <p> element is immediately followed by an <address>, <article>, <aside>, <blockquote>, <p>, <dl>, <fieldset>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>, <hr>, <menu>, <nav>, <ol>, <pre>, <section>, <table>, <ul> or another <p> element, or if there is no more content in the parent element and the parent element is not an <a> element.

MDN HTML element reference <p>

快把块级元素列完了。。。

但最后一个由结束标记补全出来的 <p></p> 如果我没看漏的话,标准里似乎就没提到了。就是说看浏览器心情,它决定怎么处理这个意外的结束标记就怎么处理。所以在某种浏览器里,说不定楼主这段代码真能输出 7 。。。

ringa_lee

从上到下依次包含如下六个子节点:
一个文本节点:"↵ 我是文字4↵ "
三个元素节点:<p>节点</p>
一个元素节点:<p></p>
一个文本节点:"↵ "

//↵代指换行符

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号