首页 > 请教一下jQuery中的:contains(text)

请教一下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标签引入就不会出现这样的问题了。如果是注释里面出现了你要查找的文字也会被忽略。

【热门文章】
【热门文章】