Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CSS选择器,用于查找其子元素之一具有特定文本值的元素_Javascript_Jquery_Html_Css_Xpath - Fatal编程技术网

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

Javascript CSS选择器,用于查找其子元素之一具有特定文本值的元素,javascript,jquery,html,css,xpath,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>&l

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>

您可能只需要使用:contains伪选择器:

虽然当我读到那个链接时,我意识到:contains现在已经被弃用了。如果您使用的是jQuery,您可以看看:


我需要更正,但在jQuery中使用此选择器在任何情况下都应该有效。

如果需要简单的子字符串匹配,请使用
: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";
 });
 var li = $('#some li').filter(function(){
     // return true to keep a match and false to ignore it
     return /val2/i.match();
 });
如果需要不区分大小写的全文匹配,请在筛选器中使用正则表达式(带有
i
选项):

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

regex表达式可能是错误的(我总是第一次把它们弄乱),但你会明白:)

ok,“filter”是好主意,而“:contains”似乎真的不受欢迎,不起作用——至少在IE中不能起作用。最后,我使用了KO绑定,因为这比直接的jqdom操作更容易,因为我需要(最初,我认为jq会更快:)CSS
:contains
选择器可能会被弃用,但是
:contains
jQuery伪选择器没有被弃用:)无论如何,我还是推荐一个
过滤器
选项。请发布您自己的解决方案,而不是让问题悬而未决。谢谢