我有以下HTML和jQuery代码:
<div id="outer">
<p>
<p>paragraph inside division.</p>
<h2>a heading</h2>
<ul>
<li>first item</li>
<li>second item</li>
</ul>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$(function() {
$divChildren = $('div#outer').children();
$divChildren.each(function(){
$(this).css('background-color', 'red');
});
alert($divChildren.length);
});
Run Code Online (Sandbox Code Playgroud)
从我看到的,没有.直系孩子<div id="outer">应该是1,但jQuery看到4.为什么?但是,如果'#outer'内部的每一个都包含在另一个div(而不是<p>)中,那么它只能看到一个直接子节点(如预期的那样).
编辑:这绝对是一个格式错误的HTML嵌套问题(并感谢大家的回答).但是,我的问题应该更恰当地说:jQuery是否了解并强制执行HTML嵌套规则,还是浏览器构建DOM树(强加嵌套规则),jQuery只返回DOM树中看到的内容?
不幸的是,<p>元素不能包含其他<p>元素.这就是HTML的工作原理.你需要使用一个<div>代替.
你的HTML代码无效.你不能把p标签内的p标签
段落元素可以包含在元素"address","applet","blockquote","body","button","center","del","dd","div","fieldset","形式","iframe","ins","li","map","noframes","noscript","object","td"和"th".
HTML内联元素是可以包含在段落元素中的唯一元素.
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |