<strike id="3tkic"><sup id="3tkic"></sup></strike>

  1. <ul id="3tkic"></ul>
      <b id="3tkic"><legend id="3tkic"></legend></b>
      <b id="3tkic"><meter id="3tkic"></meter></b>

    • <strike id="3tkic"></strike>

      <blockquote id="3tkic"></blockquote>

    • 亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l

      js下firstElementChild firstChild 以及childNodes和children方法

      2020/11/25 17:50:10   閱讀:4249    發(fā)布者:4249


      123




      var oDiv=document.getElementByTagName("div")[0];
      alert(oDiv.firstChild.nodeName)

      在ie9以下,alert出來(lái)的是p(p標(biāo)簽名字),但是在現(xiàn)代瀏覽器下,比如Chrome,FF,ie11等等,由于會(huì)把

      兩個(gè)標(biāo)簽之間的空白節(jié)點(diǎn)也解析出來(lái),所以會(huì)alert出#text(由于空白節(jié)點(diǎn)是屬于text文本節(jié)點(diǎn))

      如果把html的Demo改成如下,則無(wú)論在古老瀏覽器還是現(xiàn)代瀏覽器中得到的結(jié)果都是一樣

      123



      由于沒(méi)有了div與p標(biāo)簽之間的空白,所以執(zhí)行上面js代碼時(shí)無(wú)論在ie678還是現(xiàn)代瀏覽器中都輸出p標(biāo)簽

      在平時(shí)寫js中,我們經(jīng)常會(huì)想用一個(gè)方法直接獲取到父元素的第一個(gè)子元素節(jié)點(diǎn),就好比如上面的例子中,使用firstChild確實(shí)可以實(shí)現(xiàn)這一功能

      123


      var first=document.getElementByTagName("div")[0].firstChild

      這樣我們就可以獲取到第一個(gè)元素子節(jié)點(diǎn),但是當(dāng)div與p之間存在空白節(jié)點(diǎn)的話,first就會(huì)獲取到空白節(jié)點(diǎn)而不是第一個(gè)元素節(jié)點(diǎn)。

      所以,DOM擴(kuò)展了一個(gè)firstElementChild方法,這個(gè)方法可以獲取到父元素的第一個(gè)子元素節(jié)點(diǎn)

      123




      var first=document.getElementByTagName("div")[0].firstElementChild

      即便div與p標(biāo)簽中存在空白節(jié)點(diǎn),但是使用firstElementChild方法仍然可以正常的獲取到div的第一個(gè)子元素節(jié)點(diǎn)p。

      但是問(wèn)題又來(lái)了,firstElementChild這個(gè)方法在現(xiàn)代瀏覽器中兼容,但是在ie678中卻沒(méi)有這個(gè)方法,一旦在ie678中使用這個(gè)方法就會(huì)出錯(cuò)。
      雖然firstElementChild方法在ie678中不兼容,但是還有一個(gè)方法,便是Children方法。

      經(jīng)測(cè)試children方法在所有主流瀏覽器中都兼容,包括ie678,并且它也能實(shí)現(xiàn)firstElementChild的功能
      var first=document.getElementByTagName("div")[0].children[0]
      所以,以后寫js的時(shí)候,如果想獲取到子元素的element節(jié)點(diǎn),最好使用children方法,childNodes方法以及firstChild方法在現(xiàn)代瀏覽器中使用,都會(huì)把元素標(biāo)簽中的空白節(jié)點(diǎn)檢測(cè)出來(lái),一般我們使用這兩個(gè)方法都是為了獲取到元素的元素節(jié)點(diǎn),空白節(jié)點(diǎn)會(huì)給我們?cè)斐珊芏嗖槐匾腷ug,而children方法則是只檢測(cè)element元素節(jié)點(diǎn),防范于未然,所以推薦大家以后使用children方法來(lái)替代childNodes。

      亚洲AV无码国产在丝袜线观看_亚洲第一页A∨在线_亚洲国产人成在线观看69网站_无码日韩人妻AV一区免费l
      <strike id="3tkic"><sup id="3tkic"></sup></strike>

      1. <ul id="3tkic"></ul>
          <b id="3tkic"><legend id="3tkic"></legend></b>
          <b id="3tkic"><meter id="3tkic"></meter></b>

        • <strike id="3tkic"></strike>

          <blockquote id="3tkic"></blockquote>

        • 黄骅市| 南漳县| 夏河县| 西畴县| 绵阳市| 唐山市| 仙居县| 长阳| 独山县| 林州市| 澄江县| 东丰县| 陇西县| 白山市| 铜鼓县| 五寨县| 南京市| 拉萨市| 镶黄旗| 遂宁市| 双流县| 增城市| 北宁市| 观塘区| 平乡县| 大姚县| 菏泽市| 延津县| 阿鲁科尔沁旗| 民和| 盘锦市| 尼勒克县| 宜都市| 福清市| 治县。| 侯马市| 阜新市| 遂宁市| 海阳市| 峨眉山市| 海城市|