CSS选择器,用于查找其中一个子元素具有特定文本值的元素。即:
<div id=some">
<ul class="nav navbar-nav">
<li ><a href="#>Home</a></li>
<li ><a href="#">Val1</a></li>
<li ><a href="#">Val2</a></li>
在这里,我想找到一个<li>
,具有innerText=Val2
如果想要简单的子字符串匹配,请使用:contains
:
var li = $('#some li:contains("Val2")');
如果您想要精确(全文匹配),请使用过滤器:
var li = $('#some li').filter(function(){
// return true to keep a match and false to ignore it
return $(this).text() == "Val2";
});
如果您想要不区分大小写的全文匹配,请在过滤器中使用regex(带有i
选项):
var li = $('#some li').filter(function(){
// return true to keep a match and false to ignore it
return /val2/i.match();
});
正则表达式可能是错误的(我第一次总是把它们搞砸),但你会明白:)
您可能只需要使用:contains伪选择器:
http://css-tricks.com/pseudo-class-selectors/
尽管当我读到这个链接时,我意识到:contains现在已经被弃用了。如果你正在使用jQuery,你可以看看:
http://api.jquery.com/contains-selector/
我需要纠正,但在jQuery中使用这个选择器在任何情况下都应该有效。