【踩坑】nextSibling 和nextElementSibling的區別


DOM

使用nextSibling屬性返回指定節點之后的下一個兄弟節點,(即:相同節點樹層中的下一個節點)。

nextSibling屬性與nextElementSibling屬性的差別: 
nextSibling屬性返回元素節點之后的兄弟節點(包括文本節點、注釋節點即回車、換行、空格、文本等等); 
nextElementSibling屬性只返回元素節點之后的兄弟元素節點(不包括文本節點、注釋節點);

注意: 空格、回車也會看作文本,以文本節點對待。 
下例中,如果兩個li元素之間有空格、回車,將返回 “undefined”。

今天犯了個很蛋疼的錯誤,調試了半天,才發現在input 與font 標簽之間多了個回車。(中間不應有任何內容,包括,回車,換行)

<input type="text" name="username" onblur="checkName();" /><font></font>

 

解決方法1:去掉中間多余的內容,input的nextSibling就是font結點 
解決辦法2:用input 的nextElementSibling 方法,得到的就是font結點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM