jQuery选择器

* jQuery和DOM

           //DOM和jQuery不可以使用对方的任何方法
            var h1 = $("#test").html();  
            var h2 = document.getElementById("test").innerHTML;

           //DOM和jQuery对象互转, 或者使用$j1.get(0);
            var $j1 = $("#test");
            var d1 = $j1[0];  

            var d2 = document.getElementById("test");
            var $j2 = $(d2);

* jQuery选择器

见上图

1.基本选择器

改变id为div1的所有div的背景色

$('#div1').css('background','#bbffaa');

改变所有p标签和class为one的div的背景色

$('p,.one').css('background','#bbffaa');

2. 层次选择器

2.1 css选择器

选取div里的所有span元素,包括子孙, 相当$("div").find("span");

$('div span');

选取div下元素名是span的子元素,只是直接子元素, 相当$("div").children("span");

$('div > span');

选取class是one的下一个<div>同辈元素,同胞的下一个元素,相当$(".one").next("div");

$('.one + div');

选取class是one的后面的所有的<div>同辈元素, 所有的同胞元素,相当于$(".one").siblings("div");

$('.one ~ div');

2.2 jQuery遍历

- 祖先
            /*祖先:
            * 1、parent() 返回被选元素的直接父元素;
            * 2、parents() 所有祖先元素,直到文档的根元素;parents("ul")返回所有祖先元素并且是ul的元素;
            * 3、parentsUntil("div") 两个元素之间的所有祖先元素;
            * */
            $("p").parent().css({border:"2px solid red", color:"red"}); //直接父
            $("i").parents().css({border:"2px solid blue"});  //所有父
            $("i").parents("div").css({border:"2px solid blue"}); //指定父
            $("i").parentsUntil("div").css({border:"2px solid blue"});  //两个元素之间的父

 

- 后代

 

            /*后代:
            * 1、children() 直接子; children("li") 指定的直接子元素
            * 2、find("*")  所有子; find("i")  指定的后代元素,包括子孙
            * */
            $("ul").children().css({border:"2px solid pink"});  //直接子
            $("ul").children("#l1").css({border:"2px solid yellow"}); //指定直接子
            $("ul").find("*").css({border:"2px solid pink"});  //所有子,包括后代
            $("ul").find("#l1").css({border:"2px solid pink"});  //指定的子孙

 

- 同胞
            /*同胞
            * 1、sibings()所有同胞; sibings("div")同胞元素并且是div的元素;
            * 2、next()下一个同胞元素;
            * 3、nextAll()该元素后面的所有同胞元素;
            * 4、nextUntil("h6") 该元素与h6之间的所有同胞元素;
            * 5、prev()、prevAll()、prevUntil()
            * */

 

- 过滤
            /*过滤
            * 1、first() 、last();
            * 2、eq();  注意下标是从0开始
            * 3、filter();
            * 4、not(); 与filter相反
            * */
            $("div").eq(0).css("background-color","pink"); //第一个div
            $("li").filter("#l1").css("background-color","pink");  //带有id=l1的li元素

 

3. 过滤选择器

1、基本过滤选择器

选取所有<div>元素中第一个<div>元素

$('div:first');

选取class不是one的<div>元素

$('div:not(.one)');

选取索引是偶数的的<div>元素

$('div:even');

选取索引等于2的<div>元素

$('div:eq(2)');

选取索引大于2的<div>元素

$('div:gt(2)');

选取所有标题元素,例如h1、h2等

$(':header');

选取当前正在执行动画的所有元素

$(':animated');

选取获取当前焦点的元素

$(':focus');

2、内容过滤选择器

选取含有文本“坚持”的<div>元素

$('div:contains('坚持')');

选取不包含子元素或者文本的<div>元素

$('div:empty');

选取含有<p>元素的<div>元素

$('div:has(p)');

选取含有子元素或者文本的元素

$('div:parent');

3、可见性过滤选择器

选取所有不可见的元素。包括<input type="hidden" />,<div style="display:none">和<div style="overflow:hidden">

$(':hidden');

选取所有可见的<div>元素

$('div:visible');

4、属性过滤选择器

选取有id属性的元素

$('div[id]');

选取id等于myId的<div>元素

$('div[id="myId"]');

选取id值不等于myId的<div>元素

$('div[id!="myId"]');

选取id值以my开头的<div>元素

$('div[id^="my"]');

选取id值以my结尾的<div>元素

$('div[id$="my"]');

选取id值含有my的<div>元素

$('div[id*="my"]');

选取属性title等于en或者以en为前缀(en后跟一个连字符'-')的元素

$('div[title|="en"]');

选取属性title中用空格分隔的值中包含字符en的<div>元素

$('div[title~="en"]');

选取拥有属性id并且属性title以en为前缀的<p>元素

$('p[id][title|="en"]');

5、子元素过滤器

选取每个class为one的<div>父元素下的第2个子元素

$('div.one :nth-child(2)');

选取每个class为one的<div>父元素下的第1个子元素

$('div.one :first-child');

选取<ul>中是唯一子元素的<li>元素

$('ul li:only-child');

6、表单对象属性过滤选择器

选取id为"form1"表单内的所有可用元素

$('#form1:enabled');

选取id为"form1"表单内的所有不可用元素

$('#form1:disabled');

选取所有被选中的<input>元素

$('input:checked');

选取所有被选中的选项元素

$('select option:selector');

表单选择器

选取所有的<input>、<textarea>、<select>和<button>元素

$(':input');

选取所有的单行文本框

$(':text');

选取所有的不可见的元素

 $(':hidden');

posted on 2018-06-20 16:12  莫伊筱筱  阅读(188)  评论(0编辑  收藏  举报