我正在尝试使用jQuery做一些相当容易的工作。 我想要的只是选择所选节点的sibbling,以及 NOT 一个sibbling的孩子!
<div id="test">
<p>First Paragraph
<p class='border2'>SUB paragraph
<p class='border3'>SUB SUB paragraph</p>
</p>
</p>
<p>Second Paragraph</p>
<p>Third Paragraph</p>
<p>Fourth Paragraph</p>
</div>
此刻我尝试了很多不同的事情,但他们没有按预期行事。我试过了,例如:
$("div").find("p").andSelf().addClass("border");
$("div > p").addClass("border");
$("div p:first").nextAll().andSelf().addClass("border");
$("#test ~ p").addClass("border");
我的代码段可以在jsFiddle找到。
答案 0 :(得分:7)
您将无法使用,因为您的标记无效。
您无法在<p>
中嵌套<p>
,因此浏览器会将嵌套的p
踢出去。
Here's your fiddle但是使用更新的CSS来显示它们已不再嵌套。
您只能在<p>
。
答案 1 :(得分:1)
您的问题是由于
引起的P元素代表一个段落。它不能包含块级元素(包括P本身)。
取自 The Specs 。
浏览器将每个段落视为原始div的直接子段,因为它不能包含在不同的p中。你选择了错误的元素来处理:)