jQuery的 - 内容等于而非内容包含:
考虑下面的HTML ...jQuery的 - 内容等于而非内容包含:
<div id="group">
<ul>
<li><div class="category">one</div></li>
<li><div class="category">one</div></li>
<li><div class="category">onetwo</div></li>
<li><div class="category">two</div></li>
</ul>
</div>
...我试图找出如何在jQuery的选择,将选择所有'#group ul li'
元素有一个子节点'.category'
,innerHTML等于某个字符串(例如“one”)。例如,给定字符串“one”,这个选择器将返回前两个li。
这是我到目前为止有:
$('#group ul li')
将选择所有李时珍的。然后我需要筛选:$('#group ul li').filter(".category:contains('one')")
将选择所有这些li,使它们具有包含字符串'one'的类别类别的子项。但是,有没有什么办法可以检查这是否是等于为1?
我想也许只是写我自己的功能,做平等检查,并通过它来过滤?
$('#group ul li div.category').filter(function() {return $(this).text() == "one";}).parent()
这可能是最具体的方式。请参阅example。
您可以使用具有功能性参数的过滤功能。喜欢的东西:
$('#group ul li').filter(function() { return $(this).html() == 'one'; })
这是关闭的,但$(this)应该是检查类别子,而不是这个... – 2011-12-30 07:45:51
会if语句工作,或者你在寻找一个选择器?作为声明,这可能会...
if ($('#group ul li .category').html() == 'one')
我在寻找一个选择器,我想选择许多不同的
以上答案都不正确。最后我用这个作为我的选择:
$('#group ul li').filter(function() {
return $(this).children('.category').html() == 'one';
})
请让我知道,如果有更好的方法来做到这一点,我会愉快地接受你的答案。
实际上....你的就像接受的答案,除了他过滤更具体的前面,你的过滤后更具体。我真的很喜欢其他的。 – Metropolis 2013-06-20 14:59:24
查看对接受答案的评论。 – 2013-06-21 16:59:06
您的示例不会返回预期的结果吗? – 2011-12-30 07:41:20
你想得到前两个“李”,它确实如此。那么你的预期结果是什么? – 2011-12-30 16:36:40
可能在最后错过了.parent()...我的错误 – 2013-03-13 00:59:48