除了在<p class="Notes>
元素之后的li元素之外,我如何针对它们?换言之,我想针对Steps而不是Notes。
我试着在OL中添加一个我想从选择中排除的类,但我想出的代码不起作用。
(顺便说一句,重组html不是一种选择)
('#a > ol > li.P-List-number').not(':has("ul.Notes")')
<div id="a">
<h2 class="task">Blah, blah, blah</h2>
<p class="Body">Yada, yada, yada:</p>
<ol>
<li class="P-List-number">Step 1...</li>
<li class="P-List-number">Step 2...</li>
<li class="P-List-number">Step 3...</li>
</ol>
<p class="Notes>NOTES</p>
<ol class="Notes">
<li class="P-List-number">Note 1</li>
<li class="P-List-number">Note 2</li>
</ol>
</div>
您可以使用p:not(.Notes)
,然后使用next()
选择ol
,使用children()
选择li
$('p:not(.Notes)').next('ol').children('li').css('color', 'blue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a">
<h2 class="task">Blah, blah, blah</h2>
<p class="Body">Yada, yada, yada:</p>
<ol>
<li class="P-List-number">Step 1...</li>
<li class="P-List-number">Step 2...</li>
<li class="P-List-number">Step 3...</li>
</ol>
<p class="Notes">NOTES</p>
<ol class="Notes">
<li class="P-List-number">Note 1</li>
<li class="P-List-number">Note 2</li>
</ol>
</div>
或者只是p:not(.Notes) + ol li
$('p:not(.Notes) + ol li').css('color', 'blue');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a">
<h2 class="task">Blah, blah, blah</h2>
<p class="Body">Yada, yada, yada:</p>
<ol>
<li class="P-List-number">Step 1...</li>
<li class="P-List-number">Step 2...</li>
<li class="P-List-number">Step 3...</li>
</ol>
<p class="Notes">NOTES</p>
<ol class="Notes">
<li class="P-List-number">Note 1</li>
<li class="P-List-number">Note 2</li>
</ol>
</div>