什么是nextElementSibling和nextSibling之间的区别

时间:2015-06-28 06:59:38

标签: javascript

虽然我似乎偶尔会得到奇怪的结果,但这些似乎与我相同,所以有人可以描述这种差异吗?

2 个答案:

答案 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 将只返回忽略所有的下一个元素中间的节点,如果有的话。

关于当前页面。问题的nextSiblingTextNode(Whitespace),但如果我想获得#answers,我会使用nextElementSibling

enter image description here

enter image description here