在javascript中,你如何获得dom中的下一个节点而不是下一个兄弟节点?在xpath中他们有这个。
以下面的html为例:
1049
我想要一个函数,当我在节点上运行它时,#34;当前"它返回节点" next"。为了清楚起见,我使用的是id。
答案 0 :(得分:1)
我会说这样的事情可行,假设node
是起始节点。
while( !node.nextSibling && node.parentNode) node = node.parentNode;
node = node.nextSibling; // will be null if node was last in document
这将获得文档中的下一个节点 - 尽管我不确定您是否将孩子视为"后续"在这种情况下。如果是这样,你应该从:
开始if( node.firstChild) node = node.nextChild;
else {
while ...
}
答案 1 :(得分:0)
会有以下工作:
function findNextNode(ElementToSearch) {
if (ElementToSearch.next().length == 0) {
return ElementToSearch.parent().next();
} else {
return ElementToSearch.next();
}
}
var nextNode = findNextNode($('#current'));
答案 2 :(得分:0)
function next(current)
{
var parent = current.parentNode,
children = parent.children,
//childNodes、nextSibling maybe contain ObjectText
length = children.length;
for(var i=0;i<length;i++)
{
if(current == children[i])
break;
}
//if not lastChild
if(i<length-1)
{
return children[i+1];
}
else
{
//recursion search until parent == document.body
if(parent != document.body)
{
return next(parent);
}
else
{
window.console.warn("Can not get next sibling");
}
}
}