如何使用JavaScript获取HTML中的下一个元素?
假设我有三个 使用 但是在某些浏览器中(我忘了哪些)你还需要检查空格和注释节点: 像jQuery这样的库可以为您提供开箱即用的所有这些跨浏览器检查. 在纯JavaScript中,我的想法是你首先必须在集合中整理它们. 所以基本上用selectionDiv遍历集合来找到它的索引,然后显然-1 =前一个+1 =下一个边界内 请注意,虽然我说需要额外的逻辑来检查你是否在范围内,即你不在收集的最后或开始. 这也意味着你说有一个div嵌套了一个div.下一个div不是兄弟姐妹而是孩子,所以如果你只想让兄弟姐妹与目标div处于同一级别,那么肯定使用nextSibling检查tagName属性. 真的取决于您的文档的整体结构. 如果你有: 它可能就像穿越使用一样简单 但是,如果"下一个"div可以在文档中的任何位置,则需要更复杂的解决方案.你可以试试用 并通过这些来到达你想要的地方. 如果您正在进行大量复杂的DOM遍历,我会建议您查看jQuery等库. 每个HTMLElement都有一个属性,"previousElementSibling". 例如: 直播:http://jsfiddle.net/QukKM/ 这将很容易......它是一个纯粹的JavaScript代码
1> Crescent Fre..:nextSibling
和previousSibling
属性:
document.getElementById('foo2').nextSibling; // #foo3
document.getElementById('foo2').previousSibling; // #foo1
var div = document.getElementById('foo2');
var nextSibling = div.nextSibling;
while(nextSibling && nextSibling.nodeType != 1) {
nextSibling = nextSibling.nextSibling
}
nextElementSibling更有用.
请注意,nextSibling和nextElementSibling都不是完全跨浏览器兼容的.Firefox的nextSibling返回文本节点,而IE则没有,而nextElementsibling直到IE9才会实现.
如果元素不是兄弟姐妹,这将不起作用.
2> REA_ANDREW..:var divs = document.getElementsByTagName("div");
//divs now contain each and every div element on the page
var selectionDiv = document.getElementById("MySecondDiv");
for(var i = 0; i < divs.length;i++)
{
if(divs[i] == selectionDiv)
{
var previous = divs[i - 1];
var next = divs[i + 1];
}
}
3> Andy Hume..:
mydiv.nextSibling;
mydiv.previousSibling;
document.getElementsByTagName("div");
我认为nextSibling()..应该是nextSibling
4> 小智..:
var b = document.getElementById("c").previousElementSibling;
document.getElementById("result").innerHTML += b.innerHTML;
5> 小智..:
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有