用于查找其子元素之一具有特定文本值的元素的CSS选择器

时间:2014-09-25 13:52:54

标签: javascript jquery html css xpath

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

2 个答案:

答案 0 :(得分:2)

如果您想要简单的子字符串匹配,请使用: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";
 });

如果您想要不区分大小写的全文匹配,请在过滤器中使用正则表达式(使用i选项):

 var li = $('#some li').filter(function(){
     // return true to keep a match and false to ignore it
     return /val2/i.match();
 });

正则表达式可能是错误的(我总是第一次弄乱它们),但你明白了这一点:)

答案 1 :(得分:0)

您可以使用:contains伪选择器:

http://css-tricks.com/pseudo-class-selectors/

虽然当我读到该链接时,我意识到:包含现已弃用。如果你正在使用jQuery,你可以看看:

http://api.jquery.com/contains-selector/

我有待纠正,但在jQuery中使用此选择器应该可以在任何情况下使用。