Antworten
Die korrekte Syntax wäre $("li:contains('John'),li:contains('Mary')").css("color","red")
Aber ich habe herausgefunden, dass jQuery sehr schlecht abschneidet, wenn Sie viele Fälle testen müssen (besonders auf IE6, ich weiß, es ist alt, aber immer noch in Gebrauch). Also beschloss ich, meinen eigenen Attributfilter zu schreiben.
So verwenden Sie es: $("li:mcontains('John','Mary')").css("color","red")
Code
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;
};
Es ist einfach:
$("li:contains('John'):contains('Mary')")
.