HTML5新增的3種選擇器
引言
在HTML5中,DOM擴充了querySelectorAll()、querySelector()和matchesSelector()這3種方法,通過CSS選擇符查詢DOM文件取得元素的引用的功能變成了原生的API,解析和樹查詢操作在瀏覽器內部通過編譯後的程式碼來完成,極大地改善了效能。本文將詳細介紹html5新增的3種selector方法以及和ES3中選擇器的對比。
方法
querySelector()
querySelector()方法接收一個CSS選擇符,返回與該模式匹配的第一個元素,如果沒有找到匹配的元素,返回null。該方法既可用於文件document型別,也可用於元素element型別。
<body>
<div id="div1"></div>
<ul>
<li class="item">1</li>
<li class="item">2</li>
<li class="item">3</li>
<li class="item">4</li>
<li class="item">5</li>
</ul>
<script>
var oDiv = document.querySelector("#div1");
var oUl = document.querySelector("ul");
var oLi = document.querySelector(".item");
var oLi2 = document.querySelector("ul li");
alert(oLi.innerHTML); //頁面彈出1
alert(oLi2.innerHTML); //頁面彈出1
</script>
</body>
querySelectorAll()
querySelectorAll()接收一個CSS選擇符,返回一個類陣列物件NodeList的例項,沒有匹配元素時,返回空的類陣列物件,而不是null。
<body>
<div class="div1"></div>
<ul>
<li class="item">1</li>
<li class="item">2</li>
<li class="item">3</li>
<li class="item">4</li>
<li class="item">5</li>
</ul>
<script>
var oLi = document.querySelectorAll(".item");
for (var i = 0; i < oLi.length; i++) {
alert(oLi[i].innerHTML); //頁面彈出1,2,3,4,5
}
</script>
</body>
matchesSelector()
matchesSelector()方法接收一個CSS選擇符引數,如果呼叫元素與該選擇符相匹配,返回true;否則返回false。由於相容性問題,現在各個瀏覽器都只支援加字首的方法。
<body class="test">
<script>
function matchesSelector(element,selector){
if(element.matchesSelector){
return element.matchesSelector(selector);
}
if(element.msMatchesSelector){
return element.msMatchesSelector(selector);
}
if(element.mozMatchesSelector){
return element.mozMatchesSelector(selector);
}
if(element.webkitMatchesSelector){
return element.webkitMatchesSelector(selector);
}
}
alert(matchesSelector(document.body,'.test')); //頁面彈出true
</script>
</body>
總結
相容性:IE8+
動態靜態:q 靜態; g 動態
效能:$ > q > g
相關文章
- 【HTML5】Web前端——第四課:CSS3新增選擇器HTMLWeb前端CSSS3
- CSS3新增選擇器(屬性選擇器、結構偽類選擇器、偽元素選擇器)CSSS3
- CSS系列:CSS3新增選擇器CSSS3
- HTML5中CSS3的屬性選擇器HTMLCSSS3
- 31種選擇器的應用
- css3 選擇器:屬性選擇器(五)CSSS3
- CSS3選擇器02—CSS3部分選擇器CSSS3
- css3選擇器CSSS3
- CSS3 - 選擇器CSSS3
- 【CSS】【3】CSS選擇器CSS
- jQuery選擇器 標籤選擇元素+css簡單新增移除操作jQueryCSS
- css3 nth-child() 選擇器 (遍歷選擇器的奇偶數)CSSS3
- 四種CSS 複合選擇器CSS
- 01、CSS3-選擇器CSSS3
- 002---選擇器(標籤選擇器、類選擇器、id選擇器、偽類選擇器、萬用字元選擇器)字元
- jQuery選擇器介紹:基本選擇器、層次選擇器、過濾選擇器、表單選擇器jQuery
- jQuery選擇器——基本選擇器jQuery
- 《HTML5與CSS3權威指南(第3版·下冊)》——第19章選 擇 器HTMLCSSS3
- 神通廣大的CSS3選擇器CSSS3
- jQuery 3教程(二):jQuery選擇器jQuery
- 基本CSS選擇器,複合選擇器,後代選擇器CSS
- 盤點 CSS Selectors Level 4 中新增的選擇器CSS
- jQuery選擇器——層次選擇器jQuery
- JQuery選擇器——可見性篩選選擇器和屬性篩選選擇器jQuery
- CSS選擇器種類及使用方法CSS
- css選擇器有哪幾種型別CSS型別
- css3 nth-child選擇器CSSS3
- CSS3學習----選擇器、字型CSSS3
- jQuery選擇器之層次選擇器jQuery
- CSS選擇器(5)——屬性選擇器CSS
- jQuery選擇器——基本過濾選擇器jQuery
- CSS ID選擇器與CLASS選擇器CSS
- 《HTML5與CSS3權威指南(第3版·下冊)》——19.5 通用兄弟元素選擇器HTMLCSSS3
- Jquery的選擇器jQuery
- CSS的選擇器CSS
- 第87天:HTML5中新選擇器querySelector的使用HTML
- Web開發者選擇的最佳HTML5/CSS3程式碼生成器WebHTMLCSSS3
- 【乾貨分享】三種物理伺服器中的選擇伺服器