虽然我似乎偶尔会得到奇怪的结果,但这些似乎与我相同,所以有人可以描述这种差异吗?
答案 0 :(得分:28)
'nextSibling'返回下一个Node对象,而'nextElementSibling'返回下一个Element对象,所以可能真正的问题是节点和节点之间有什么区别?元素?
基本上,元素由HTML标记指定,而节点是DOM中的任何对象,因此元素是节点,但节点还可以包括空白,注释,文本字符或换行符形式的文本节点。有关元素与节点的详细信息,请参阅此Difference between Node object and Element object?
即采取以下DOM片段
java.io.NotSerializableException
使用nextSibling你会得到:
import os
os.system('taskkill /im chrome.exe')
os.system('taskkill /im powerpnt.exe')
os.system('taskkill /im outlook.exe')
os.system('taskkill /im winword.exe')
os.system('taskkill /im excel.exe')
使用nextElementSibling你会得到:
<div id="start"></div>
Me
<p>Hi</p>
nextElementSibling也是IE10 +,是较新的方法,而nextSibling拥有完整的浏览器支持
答案 1 :(得分:1)
nextSibling 将返回DOM中的下一个节点,很可能是在当前网页场景中,它是一个空格,但 nextElementSibling 将只返回忽略所有的下一个元素中间的节点,如果有的话。
关于当前页面。问题的nextSibling
是TextNode(Whitespace)
,但如果我想获得#answers
,我会使用nextElementSibling