<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   閱讀:4280    發(fā)布者:4280


      123




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

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

      兩個標簽之間的空白節(jié)點也解析出來,所以會alert出#text(由于空白節(jié)點是屬于text文本節(jié)點)

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

      123



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

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

      123


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

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

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

      123




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

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

      但是問題又來了,firstElementChild這個方法在現(xiàn)代瀏覽器中兼容,但是在ie678中卻沒有這個方法,一旦在ie678中使用這個方法就會出錯。
      雖然firstElementChild方法在ie678中不兼容,但是還有一個方法,便是Children方法。

      經(jīng)測試children方法在所有主流瀏覽器中都兼容,包括ie678,并且它也能實現(xiàn)firstElementChild的功能
      var first=document.getElementByTagName("div")[0].children[0]
      所以,以后寫js的時候,如果想獲取到子元素的element節(jié)點,最好使用children方法,childNodes方法以及firstChild方法在現(xiàn)代瀏覽器中使用,都會把元素標簽中的空白節(jié)點檢測出來,一般我們使用這兩個方法都是為了獲取到元素的元素節(jié)點,空白節(jié)點會給我們造成很多不必要的bug,而children方法則是只檢測element元素節(jié)點,防范于未然,所以推薦大家以后使用children方法來替代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>

        • 图木舒克市| 兰西县| 灵丘县| 武邑县| 平昌县| 许昌市| 长乐市| 九龙县| 顺昌县| 梨树县| 湘西| 荥阳市| 新巴尔虎左旗| 高州市| 大港区| 贵阳市| 安溪县| 扶绥县| 普格县| 甘泉县| 濮阳市| 东宁县| 雷州市| 潮州市| 吉林省| 赤城县| 将乐县| 南木林县| 探索| 五家渠市| 临海市| 扎兰屯市| 方山县| 绥阳县| 宁城县| 抚州市| 洱源县| 米脂县| 精河县| 遵义市| 大港区|