發布時間: 2018-10-12 09:01:12
?在簡單選擇器中,了解最基本的三種選擇器:元素標簽名、ID 和類(class)。那么在基礎選擇器外,還有一些進階和高級的選擇器方便我們更精準的選擇元素。
//群組選擇器
span,em, .box { //多種選擇器添加紅色字體
color:red;
}
$('span,em, .box').css('color', 'red'); //群組選擇器 jQuery 方式
//后代選擇器
ulli a { color:red; } //層層追溯到的元素添加紅色字體
$('.box.pox').css('color','red'); //群組選擇器 jQuery 方式
//通配選擇器
*{ color:red; } //頁面所有元素都添加紅色字體
$('*').css('color','red'); //通配選擇器
$('p').css('color','red'); //通配選擇器
目前介紹的六種選擇器,在實際應用中,可以靈活的搭配,使得選擇器更加的精準和快速:
$('#box p, ul li *').css('color', 'red'); //組合了多種選擇器
警告:在實際使用上,通配選擇器一般用的并不多,尤其是在大通配上,比如:$('*'),這種使用方法效率很低,影響性能,建議竟可能少用。
還有一種選擇器,可以在 ID 和類(class)中指明元素前綴,比如:
$('div.box'); //限定必須是.box
元素獲取必須是
$('p#box div.side'); //同上
類(class)有一個特殊的模式,就是同一個 DOM 節點可以聲明多個類(class)。那么對于這種格式,我們有多 class 選擇器可以使用,但要注意和 class 群組選擇器的區別。
.box.pox{ //雙 class 選擇器,IE6 出現異常
color:red;
}
$('.box.pox').css('color','red'); //兼容IE6,解決了異常
多class選擇器是必須一個DOM節點同時有多個class,用這多個class進行精確限定。而群組class選擇器,只不過是多個class進行選擇而已。
$('.box,.pox').css('color', 'red'); //加了逗號,體會區別
警告:在構造選擇器時,有一個通用的優化原則:只追求必要的確定性。當選擇器篩選越復雜,jQuery 內部的選擇器引擎處理字符串的時間就越長。比如:
$('div#boxul li a#link'); //讓jQuery 內部處理了不必要的字符串
$('#link'); //ID 是唯一性的,準確度不變,性能提升
?