我想不通。我已经做了一些搜索,我发现我认为会起作用,但事实并非如此。
我有这样的结构。
当你点击一个数字时,锚点就会被移除。当您随后单击另一个数字时,我想知道哪个 li 中没有锚点,或者它的文本没有被锚点包裹。不管测试如何,我总是能得到 li 的全部范围。它从来没有通过我的测试。
在以下情况下,我通过一个元素的 LI 集合来重申。
var page = jQuery('#thiselement');
jQuery.each(page.find('li'),function(){
if(jQuery(':not(:has(a))',this)){
// also tried jQuery(this), no luck
// no matter what, it ALWAYS falls in this conditional
// if the LI has a link or not, it gets in here
}
}
<ul id="thiselement">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
</ul>
我需要将通过测试的任何内容包装在一个锚标记中。所以,让我们说当测试是有条件的运行时,我们有:
<ul id="thiselement">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li>4</li>
<li><a href="#">5</a></li>
然后……第 4 里就通过了测试,因为那是里面没有“a”的“this”。