日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML5中类jQuery选择器querySelector的使用

發布時間:2025/5/22 HTML 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML5中类jQuery选择器querySelector的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

HTML5向Web API新引入了document.querySelector以及document.querySelectorAll兩個方法用來更方便地從DOM選取元素,功能類似于jQuery的選擇器。這使得在編寫原生JavaScript代碼時方便了許多。

用法

兩個方法使用差不多的語法,都是接收一個字符串參數,這個參數需要是合法的CSS選擇語法。

element = document.querySelector('selectors'); elementList = document.querySelectorAll('selectors');

其中參數selectors 可以包含多個CSS選擇器,用逗號隔開。

element = document.querySelector('selector1,selector2,...'); elementList = document.querySelectorAll('selector1,selector2,...');

使用這兩個方法無法查找帶偽類狀態的元素,比如querySelector(':hover')不會得到預期結果。

querySelector

該方法返回滿足條件的單個元素。按照深度優先和先序遍歷的原則使用參數提供的CSS選擇器在DOM進行查找,返回第一個滿足條件的元素。

element = document.querySelector('div#container');//返回id為container的首個div element = document.querySelector('.foo,.bar');//返回帶有foo或者bar樣式類的首個元素

querySelectorAll

該方法返回所有滿足條件的元素,結果是個nodeList集合。查找規則與前面所述一樣。

elements = document.querySelectorAll('div.foo');//返回所有帶foo類樣式的div

但需要注意的是返回的nodeList集合中的元素是非實時(no-live)的,想要區別什么是實時非實時的返回結果,請看下例:

<div id="container"><div></div><div></div> </div> //首先選取頁面中id為container的元素 container=document.getElementById('#container'); console.log(container.childNodes.length)//結果為2 //然后通過代碼為其添加一個子元素 container.appendChild(document.createElement('div')); //這個元素不但添加到頁面了,這里的變量container也自動更新了 console.log(container.childNodes.length)//結果為3

通過上面的例子就很好地理解了什么是會實時更新的元素。document.getElementById返回的便是實時結果,上面對其添加一個子元素后,再次獲取所有子元素個數,已經由原來的2個更新為3個(這里不考慮有些瀏覽器比如Chrome會把空白也解析為一個子節點)。

關于轉義

我們知道反斜杠是用來轉義用的,比如在字符串里我們想表示空字符就使用'\b',換行'\n'。同樣,在提供給querySelector和querySelectorAll的參數也支持轉義,了解這點非常重要。

先看個例子,比如我們有個div它的樣式類為'foo:bar',當然我知道你一般不會這樣寫。當我們需要選擇它的時候,就需要將其中的冒號進行轉義,否則拋錯。

<div class="foo:bar"></div>

瀏覽器報怨表示不是一個合法的選擇語句。

同時,有趣的事情來了,或許你以為將冒號直接轉義就解決問題了。

同樣,也表示非法。原因就在于反斜杠在字符串中本身就表示轉義的意思,它于冒號結合轉不出東西來,于是拋錯。

所以正確的做法是將反斜杠轉義后'.foo\\:bar'再傳遞給querySelector,后者在接收到'.foo\\:bar'這個參數后,字符串將兩個反斜杠轉義成一個,然后querySelector前面得到的一個反斜杠與冒號結合進行轉義得到正確結果。

也就是說經歷兩次轉義,一次是字符串當中,一次是querySelector解析參數時。

理解這點后,可以來看一個更有趣的例子了。比如我們要選擇類名里面含反斜杠的元素。是的,我們需要一共使用四個反斜杠!才能正常工作。

<div class="foo\bar"></div>

瀏覽器兼容性

目前各主流瀏覽器對此API提供了良好支持,IE需8+。詳情見caniuse。

4.0+

3.5+

8+

10.0+

3.1+

?

?

REFERENCE

本文主要參考了MDN上的文檔

  • document.querySelectorAll
  • document.querySelector
  • NodeList

轉載于:https://www.cnblogs.com/Wayou/p/html5_web_api_queryselector.html

總結

以上是生活随笔為你收集整理的HTML5中类jQuery选择器querySelector的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。