У меня есть следующий код 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>
jQuery:
$(function() {
$divChildren = $('div#outer').children();
$divChildren.each(function(){
$(this).css('background-color', 'red');
});
alert($divChildren.length);
});
Из того, что я вижу, нет.у ближайших детей, которые <div id="outer">
имеет, должно быть 1, но jQuery видит 4. Почему это?Однако, если все внутри '#outer' было заключено в другой div (вместо
), то он видит только 1 непосредственного потомка (как и ожидалось).
РЕДАКТИРОВАТЬ: Это определенно некорректная проблема с вложением HTML (и всем спасибо за ответ).Но мой вопрос, более уместно, должен был звучать так: осведомлен ли jQuery о правилах вложения HTML и применяет ли он правила построения дерева DOM (что накладывает правила вложения), а jQuery просто возвращает то, что видит в дереве DOM?