最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript基礎(chǔ)之查找元素的詳細(xì)介紹(訪問節(jié)點(diǎn))

 更新時(shí)間:2013年07月05日 15:26:38   作者:  
常用jQuery的話我們知道,jQuery有非常強(qiáng)大的選擇器來查找元素(也稱作訪問節(jié)點(diǎn)),例如:基本選擇器、層次選擇器、過濾選擇器、屬性選擇器等
當(dāng)然這些選擇器都是jQuery擴(kuò)展的一些方法,那么使用原生js時(shí)要怎樣來查找元素呢?今天就來簡(jiǎn)單梳理下。

DOM定義了多種查找元素的方法,除了我們常用的getElementById(),還有g(shù)etElementsByTagName()和getElementsByName()。使用這幾種方法方法我們可以查找html文檔中的任意html元素。

getElementById()
首先來看下getElementById(),這個(gè)方法很簡(jiǎn)單,只需在參數(shù)中傳入html標(biāo)簽的id屬性值即可,由于html頁面中的id具有唯一性,因此該方法返回的是單個(gè)元素對(duì)象。例如:
復(fù)制代碼 代碼如下:

<span id="span1">span標(biāo)簽</span>
 <script>
     var oSpan = document.getElementById('span1'); //查找span元素
     alert(oSpan.innerHTML); //彈出span標(biāo)簽中的內(nèi)容
 </script>

getElementsByTagName()
getElementsByTagName()參數(shù)需傳入的是一個(gè)html標(biāo)簽名,它返回的是html文檔中所有與之匹配的元素列表,這個(gè)列表具有部分?jǐn)?shù)組的特性,因此也稱其為類數(shù)組。當(dāng)我們想操作某個(gè)特定的元素時(shí),我們可以使用數(shù)組索引或item()來實(shí)現(xiàn),例如:
復(fù)制代碼 代碼如下:

<script>
     var oDiv = document.getElementsByTagName('div'); //查找所有div元素,返回一個(gè)元素列表
     /* 操作特定元素 */
     alert(oDiv[0].innerHTML) //彈出第一個(gè)div中的內(nèi)容
     alert(oDiv.item(1).innerHTML) //彈出第二個(gè)div中的內(nèi)容
 </script>

當(dāng)然我們還可以通過length屬性來循環(huán)遍歷節(jié)點(diǎn):
復(fù)制代碼 代碼如下:

<script>
     var oDiv = document.getElementsByTagName('div');
     for(var i = 0; i < oDiv.length; i++){
         //do something
     }
 </script>

getElementsByName()
getElementsByName()常用來查找表單元素,參數(shù)中傳入html標(biāo)簽的name屬性值,由于文檔中多個(gè)html標(biāo)簽的name值可能相同(如單選按鈕),因此該方法返回的也是一個(gè)元素列表。具體操作方法與getElementsByTagName()類似,這里不在贅述。
復(fù)制代碼 代碼如下:

<script>
     var oIpt= document.getElementsByName('city'); //查找name值為city的元素
     alert(oIpt[0].value);
     alert(oIpt.item(1).value);
 </script>

getByClass()
雖然使用上面的幾種方法已經(jīng)可以滿足常見需求,但是為了更方便的訪問元素節(jié)點(diǎn),我們一般會(huì)自己封裝一個(gè)通過class來查找元素的方法:
復(fù)制代碼 代碼如下:

<script>
     /** getByClass **/
     function getByClass(oParent, sClass){
         var aEle = oParent.getElementsByTagName('*');
         var re = new RegExp('\\b' + sClass + '\\b');
         var aResult = [];
         for(var i = 0; i < aEle.length; i++){
             if(re.test(aEle[i].className)){
                 aResult.push(aEle[i]);
             }
         }
         return aResult;
     }
 </script>

getByClass需傳入兩個(gè)參數(shù),其中oParent為參考節(jié)點(diǎn),即在oParent節(jié)點(diǎn)中查找元素,sClass為要查找的元素class的值。通過循環(huán)將oParent內(nèi)的html標(biāo)簽的class值與傳入的sClass值一一對(duì)比,符合條件的會(huì)存入到數(shù)組aResult中,最后再返回這個(gè)數(shù)組。

另外這里之所以用正則來匹配而沒有直接用aEle[i].className == sClass,是避免標(biāo)簽的class值為多個(gè)時(shí),出現(xiàn)匹配失效的情況。

相關(guān)文章

  • javascript中this指向詳解

    javascript中this指向詳解

    this的指向在函數(shù)定義的時(shí)候是確定不了的,只有函數(shù)執(zhí)行的時(shí)候才能確定this到底指向誰,實(shí)際上this的最終指向的是那個(gè)調(diào)用它的對(duì)象,接下來我會(huì)深入的探討這個(gè)問題。
    2016-04-04
  • JavaScript中void(0)的具體含義解釋

    JavaScript中void(0)的具體含義解釋

    JavaScript中void(0)的具體含義解釋...
    2007-02-02
  • Typescript中interface與type的相同點(diǎn)與不同點(diǎn)的詳細(xì)說明

    Typescript中interface與type的相同點(diǎn)與不同點(diǎn)的詳細(xì)說明

    這篇文章主要介紹了Typescript中interface與type的相同點(diǎn)與不同點(diǎn),并配有實(shí)例說明,需要的朋友可以參考下
    2022-11-11
  • javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識(shí)

    javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識(shí)

    本文是學(xué)習(xí)筆記系列的第一篇,跟以前一樣,介紹些基礎(chǔ)知識(shí),包括js基本概念、 JScript 的變量、js的數(shù)據(jù)類型、3.JScript 的運(yùn)算符、js流程控制、js函數(shù)。有需要的朋友可以參考下
    2014-09-09
  • 簡(jiǎn)單掌握J(rèn)avaScript中const聲明常量與變量的用法

    簡(jiǎn)單掌握J(rèn)avaScript中const聲明常量與變量的用法

    const和let一樣,也是ES6版本中引入的新關(guān)鍵字,下面我們就通過例子來簡(jiǎn)單掌握J(rèn)avaScript中const關(guān)鍵詞聲明常量與變量的用法
    2016-05-05
  • javascript數(shù)據(jù)代理與事件詳解分析

    javascript數(shù)據(jù)代理與事件詳解分析

    所謂數(shù)據(jù)代理(也叫數(shù)據(jù)劫持),指的是在訪問或者修改對(duì)象的某個(gè)屬性時(shí),通過一段代碼攔截這個(gè)行為,進(jìn)行額外的操作或者修改返回結(jié)果。比較典型的是 Object.defineProperty() 和 ES2015 中新增的 Proxy 對(duì)象
    2021-11-11
  • JavaScript模塊詳解

    JavaScript模塊詳解

    這篇文章主要介紹了JavaScript模塊的用法以及語法基礎(chǔ),需要的朋友參考學(xué)習(xí)下吧。
    2017-12-12
  • 舉例詳解Python中smtplib模塊處理電子郵件的使用

    舉例詳解Python中smtplib模塊處理電子郵件的使用

    這篇文章主要介紹了舉例詳解Python中smtplib模塊處理電子郵件的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • 使用 stylelint檢查CSS_StyleLint

    使用 stylelint檢查CSS_StyleLint

    你需要一個(gè)防止錯(cuò)誤產(chǎn)生的機(jī)器,可以理解CSS并且理解你:你的意圖、喜好、主意以及弱點(diǎn)。 只要是它可以阻止的錯(cuò)誤它都會(huì)持續(xù)阻止。同時(shí),你和你的同事可以一直改善機(jī)器,擴(kuò)展它的功能并且削弱其局限性。
    2016-04-04
  • JavaScript中的函數(shù)的兩種定義方式和函數(shù)變量賦值

    JavaScript中的函數(shù)的兩種定義方式和函數(shù)變量賦值

    這篇文章主要介紹了JavaScript中的函數(shù)的兩種定義方式和函數(shù)變量賦值,需要的朋友可以參考下
    2014-05-05

最新評(píng)論

阳西县| 宜州市| 武山县| 武义县| 墨竹工卡县| 剑阁县| 周至县| 普兰县| 盐山县| 武邑县| 正阳县| 奉贤区| 三都| 通州区| 浏阳市| 四子王旗| 泰州市| 阿拉善盟| 泸州市| 北安市| 古交市| 太康县| 浦江县| 威宁| 兰溪市| 开阳县| 宁海县| 普宁市| 太白县| 青龙| 海原县| 东乌珠穆沁旗| 临泽县| 巴彦淖尔市| 镇安县| 收藏| 右玉县| 南平市| 北票市| 济宁市| 绵竹市|