原文地址:http://ruofeiblog.com/2016/10/10/jQuery-note-3-selector/
jQ的代碼風(fēng)格
//創(chuàng)建一個匿名函數(shù)(等待頁面DOM結(jié)構(gòu)加載完畢后執(zhí)行函數(shù)內(nèi)代碼)
$(function(){
});
//執(zhí)行一個jQ css方法,返回一個jQ對象
$('#box').css('color','red');
//連綴寫法,返回依然是一個jQ對象
$('#box').css('color','red').css('width','200px');
//返回jQ對象
$('#box');
//返回DOM對象
$('#box').get(0);
//多個庫引用$符號沖突的時候,使用$$符號代替jQuery和$
var $$ = jQuery;
//剔除$的所有權(quán),只能使用jQuery
jQuery.noConFlict();
簡單選擇器
//選擇元素標(biāo)簽名,返回多個適配的結(jié)果
$('div');
$('div p a');
//選擇ID(由于一個頁面只能出現(xiàn)一個ID,同名和重復(fù)的是不規(guī)范的,所以返回的只是一個結(jié)果;如果頁面中有多個同名的,只能返回第一個結(jié)果),記住,一個頁面中不能出現(xiàn)多個同名的id,因為這個不規(guī)范。
$('#box');
$('div #box');
//選擇Class
$('.box');
$('div #title .box');
//集合選擇器:返回同時含有box和pox類的所有結(jié)果
$('.box.pox');
//群組選擇器:返回含有box或含有pox類的所有結(jié)果
$('.box,.pox');
//構(gòu)造選擇器:選擇器越復(fù)雜,解析時間越長
$('div#box p ul li a#link');
//上面的構(gòu)造選擇器可以直接選擇末尾的id #link,因為id在html中具有唯一性
$('#link');
//通配選擇器器:選擇所有的DOM節(jié)點(包含html,head,body等標(biāo)簽)
//在全局使用通配選擇器,會照成極大的浪費,不建議使用
$('*');
//通配選擇器的最佳用法:選擇局部標(biāo)簽內(nèi)的所有DOM節(jié)點
$("ul li *");
高級選擇器(層次選擇器)
//后代選擇器:find()方法,選擇#box的子節(jié)點中的p節(jié)點,等價于$('#box p');
$('#box').find(p);
//子選擇器:選擇#box的子節(jié)點,只是第一層子節(jié)點,第二層(孫子輩的選不到)。
$('#box > p');
//同級節(jié)點的下一個節(jié)點選擇器:選擇指定節(jié)點的下一個節(jié)點,返回結(jié)果只有一個。
$('#box + p');
//jQ選擇下一個同級節(jié)點的方法:
$('#box').next('p');
//選擇指定節(jié)點同級后面的節(jié)點:nextAll方法,找到#box同級下N個P節(jié)點
$('#box ~ p');
$('#box').nextAll('p');
//選擇指定節(jié)點的上N個節(jié)點:prevAll();
$('#box').nextAll('p');
.find() .next() .nextAll()
以上三種方法如果不傳參數(shù),就是括號內(nèi)為空,就等于.next(),變成了通配符,可能造成性能浪費,不建議使用。使用這些方法的速度快于層次選擇器*
//nextUntil()方法:選擇下N個指定的節(jié)點,一直遇到到不是指定的節(jié)點時停止。
$('#box').nextUntil('p');
屬性選擇器
//選擇有title的a標(biāo)簽,返回多個
$('a[title]');
//選擇title為nub1的a標(biāo)簽
$('a[title=nub1]');
//選擇title為nub開頭的a標(biāo)簽
$('a[title^=nub]');
//選擇title為nub結(jié)尾的a標(biāo)簽
$('a[title$=nub]');
//選擇title為nub或者以nub開頭,后面-xxx的a標(biāo)簽,如:nub-1,nub-2,nub-3,nub-4
$('a[title|=nub]');
//選擇有title的且不等于nub的a標(biāo)簽
$('a[title!=nub]');
//選擇有title的且等于nub的,以空格為列表的a標(biāo)簽,如:title="nub aaa bbb"
$('a[title~=nub]');
//選擇有title的包含nub字符的a標(biāo)簽,如:title="qwqwqwwnubadadassgdg"
$('a[title*=nub]');
//選擇有title的包含nub,且含有bbb屬性的a標(biāo)簽,如:<a bbb="123" title="nub">123</a>。這個多屬性選擇器適用于上面的所有方法。
$('a[bbb][title=nub]');