史上最全的jQuery选择器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了史上最全的jQuery选择器相关的知识,希望对你有一定的参考价值。

jQuery选择器的优势

  1.简洁的写法

    $()函数在很多javascript类库中都被作为一个选择器函数来使用,在jQuery中也不例外。其中$("#ID")用来代替document.getElementById()函数,即通过ID获取元素。

  2.支持CSS1到CSS3选择器

    jQuery选择器的写法与CSS选择器的写法十分相似,只不过两者的作用效果不同,CSS选择器是找到元素后添加样式,而jQuery选择器是找到元素后添加行为。

  3.完善的处理机制

    使用jQuery选择器不仅简洁,而且还能避免很多错误。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="myScript/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>
<body>
    <div>test</div>
    <script>
        document.getElementById("tt").style.color="red";
    </script>
</body>
</html>

    运行以上代码,浏览器会因为网页中没有id为"tt"的元素而报错,因此,必须修改代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="myScript/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>
<body>
    <div>test</div>
    <script>
        if(document.getElementById("tt")){
            document.getElementById("tt").style.color="red";
        }
    </script>
</body>
</html>

    但是如果我们需要操作很多元素,那么需要对每一个元素都进行一次判断,还太麻烦了吧!!

    这个时候jQuery站了出来,其在这方面的问题上处理的非常不错,即便页面不存在该元素也不会报错哦!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="myScript/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>
<body>
    <div>test</div>
    <script>
        $("#tt").css("color","red");
    </script>
</body>
</html>

    但是需要注意的是,$("#tt")获取的永远都是对象,即便是网页上没有这个元素,因此当要用jQuery来检查某个元素在网页上是否存在时,不能使用以下代码:

if ( $("#tt") ){
    //do something
}

    而应该根据获取到元素的长度来判断

if ( $("#tt").length > 0 ){
    //do something
}

    或者转化成DOM对象来判断

if ( $("#tt")[0] ){
    //do something
}

选择器

1.基本选择器描述返回示例
#id根据给定的id匹配一个元素单个元素$("#test")选取id为test的元素
.class根据给定的类名匹配元素集合元素$(".test")选取所有class为test的元素
element根据给定元素名匹配元素集合元素$("p")选取的p标签
*匹配所有元素集合元素$("*")选取所有元素
seletor1,....,seletorN将每一个选择器匹配到的元素合并后一起返回集合元素$("div,span,p.myClass")选取所有div,span,和拥有myClass类的p标签合并成一组元素
功能代码执行按钮
改变id为one的元素的背景色$("#one").css("background","#bbffaa");
改变class为mini的所有元素的背景色$(".mini").css("background","#bbffaa");
改变div标签的背景色$("div").css("background","#bbffaa");
改变所有元素的背景色$("*").css("background","#bbffaa");
改变所有的span标签和id为two的元素的背景色$("#span,#two").css("background","#bbffaa");
#one,.one
.mini
#two,.one,title=test
.mini
t=other
.mini
t=test
.mini
.mini
.mini
.mini
.mini
.mini
.mini
.mini
t=tesst
正在执行动画的span元素. 
 
 
2.层次选择器描述返回示例
$("祖先 后代")选取祖先元素里面的所有后代元素集合元素$("div span")选取div里的所有span元素
$("parent > child")选取父亲元素里面的孩子元素集合元素$("div > span")选取div元素下名为span的子元素

$("prev + next")

$(".prev").next("next")

选取紧接在prev元素后的next元素集合元素

$(".one + div")选取class为one的下一个div的同辈元素

$(".one").next("div")

$("prev ~ siblings")

$("prev").nextAll("siblings")

选取prev元素之后的所有siblings元素集合元素

$("#two~div")选取id为two的元素后面的所有div同辈元素

$("#two").nextAll("div")

功能代码执行按钮
改变body内所有div的背景色$("body div").css("background","#bbffaa");
改变body内子div的背景色$("body > div").css("background","#bbffaa");
改变class为one的下一个div同辈元素背景色$(".one + div").css("background","#bbffaa");
改变id为two的元素后面的所有div同辈元素的背景色$("#two ~ div").css("background","#bbffaa");
#one,.one
.mini
#two,.one,title=test
.mini
t=other
.mini
t=test
.mini
.mini
.mini
.mini
.mini
.mini
.mini
.mini
t=tesst
正在执行动画的span元素.

因页面元素过多,动态元素的id冲突,请跳转至下一篇

筛选器(过滤选择器)

以上是关于史上最全的jQuery选择器的主要内容,如果未能解决你的问题,请参考以下文章

史上最全 jQuery 知识点小结(下)

jQuery最基础最全面的选择器大览

Jmeter之Json提取器详解(史上最全)

Jmeter之Json提取器详解(史上最全)

收藏史上最全的浏览器 CSS & JS Hack 手册

史上最全最实用HBuilder快捷键大全