JQuery :contains(text)选择器使用案例

黄舟
黄舟 原创
2017-06-23 11:05:25 1440浏览

概述

匹配包含给定文本的元素

参数

textStringV1.1.4

一个用以查找的字符串

示例

描述:

查找所有包含 "John" 的 div 元素

HTML 代码:

<div>John Resig</div> <div>George Martin</div> <div>Malcom John Sinclair</div> <div>J. Ohn

jQuery 代码:

$("div:contains('John')")

结果:

[ <div>John Resig</div>, <div>Malcom John Sinclair</div> ]

实例代码:

实例一:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.jb51.net/" />
<title>脚本之家</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript"> 
$(document).ready(function(){ 
  $("button").click(function(){ 
    $("li:contains('html')").css("color","blue") 
  }) 
}) 
</script>
</head>
<body>
<ul>
  <li>html专区</li>
  <li>div+css专区</li>
  <li>Jquery专区</li>
  <li>Javascript专区</li>
  <li>html5专区</li>
</ul>
<button>点击查看效果</button>
</body>
</html>

以上代码能够将包含“html”的li元素中的文本颜色设置为蓝色。

jQuery中的:contains(text)

<body>
    <div>
        我    </div><script>
    $(function(){
        $(':contains(你)').css('background','lime');
    });</script>    </body>

:contains 选择器选取包含指定字符串的元素。(W3school)

我想选择包含“你”这个字符串的元素,显然页面中没有符合条件的,但是页面也变成了绿色。 下面两个也可以使页面变成绿色(瞎试的) $(':even').css('background','lime'); $(':odd').css('background','lime'); 请问这是为什么呢?谢谢。

1.:contains('你')页画为什么会变成绿色?

因为你的script标签在html画面上,jquery在查找元素时会整个画面上查找。然后找到script里面有个'你',就是你写的那段javascript代码,程序把它当作text来处理了暂时:

 $(function(){
        $(':contains(你)').css('background','lime');
 });

所以:contains(你)应该会找到三个元素:html,body,以及这个script三个元素,将这三个元素样式加上background,当然script不支持加了也没用。

2.$(':even').css('background','lime'); $(':odd').css('background','lime'); 画面为什么会变成绿色?

$(':even')会选中html,$(':odd')会选中body,设置这两个元素的background当然会有作用了。

另外一点补充:关于第一点,如果你把你的js代码写在一个js文件中然后通过script标签引入就不会出现这样的问题了。如果是注释里面出现了你要查找的文字也会被忽略。

以上就是 JQuery :contains(text)选择器使用案例的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。