如何解决jQuery排除如果孩子有跨度与某类?
| 我有这个Chrome扩展程序,它在您的戳下面添加了一个“戳所有”按钮。我正在尝试对其进行更新,以便当您有6个或更多戳时,通过“显示全部(6)”可以刷新“我的所有戳”按钮。 [因为当您单击\“显示全部(6)\”时,它消失了]。所以在我的代码中,这就是我添加按钮的方式:$(\"#pagelet_pokes a:last\").after(html_code)
因此在facebook中有一个id为\“ pagelet_pokes \”的div,它具有大量的sub div,最终有一个w / class = \'phs \'的div,其中有一个,这是oke链接。
因此,为了简化:
<div id=\'pagelet_pokes\'>
...
<div class=\'phs\'>
<ul>
<li><div><div><a href>Poke #1</a></div></div></li>
<li><div><div><a href>Poke #2</a></div></div></li>
</div>
</div>
因此,jQuery在last之后添加了我的按钮。很好
问题是,\“显示全部(6)\”在底部添加了另一个<li class=\'showAll\'>
<a href=\'#\'>
<span class=\'fwb\'>Show all (6)</span>
</a>
</li>
现在,我尝试将我的JavaScript代码更改为此:
$(\"#pagelet_pokes a:last\").not(\'.showAll\').after(html_code)
它没有用,因为第一个选择器选择了所有,然后丢弃所有具有.showAll的a \,但这无济于事,因为.showAll位于子节点中!
因此,我的问题可以归结为这一点。我如何在#pagelet_pokes中选择最后一个\ a,它的子跨度不属于类“ pokeAll \”?是否有一些可能会像这样工作的“!”选择器? :$(\'#pagelet_pokes !li.showAll a:last\')
?谢谢!
解决方法
使用
not-selector
[docs]。
$(\'#pagelet_pokes li:not(.showAll) a:last\')
或使选择器对ѭ7有效(可能在内部使用):
$(\'#pagelet_pokes li:not(.showAll) a\').last()
编辑:
我不能从问题中完全看出来,但是如果要排除的最后一个li
始终存在,那么我倾向于使选择器保持简单,并对结果使用slice()
[docs]方法:
$(\'#pagelet_pokes li a\').slice(0,-1);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。