假设我有:
<li id="1">Mary</li>
<li id="2">John, Mary, Dave</li>
<li id="3">John, Dave, Mary</li>
<li id="4">John</li>
如果我需要查找包含"John“和"Mary”的所有元素,我该如何构造jQuery?
搜索单个字符串似乎很简单:
$('li:contains("John")').text()
我正在寻找类似以下伪代码的东西:
$('li:contains("John")' && 'li:contains("Mary")').text()
谢谢!
发布于 2010-03-10 20:35:11
怎么样
$('li:contains("John"),li:contains("Mary")')
发布于 2011-12-14 22:42:32
回答
正确的语法应该是$("li:contains('John'),li:contains('Mary')").css("color","red")
但我发现,如果你有很多案例要测试,jQuery的性能会非常糟糕(特别是在IE6上,我知道,它很旧,但仍在使用中)。因此,我决定编写自己的属性过滤器。
下面是它的使用方法:$("li:mcontains('John','Mary')").css("color","red")
代码
jQuery.expr[':'].mcontains = function(obj, index, meta, stack){
result = false;
theList = meta[3].split("','");
var contents = (obj.textContent || obj.innerText || jQuery(obj).text() || '')
for (x=0;x<theList.length;x++) {
if (contents.indexOf(theList[x]) >= 0) {
return true;
}
}
return false;
};
发布于 2012-03-26 07:44:54
这很简单:
$("li:contains('John'):contains('Mary')")
https://stackoverflow.com/questions/2416803
复制相似问题