gpt4 book ai didi

JavaScript 的下一个兄弟?

转载 作者:可可西里 更新时间:2023-11-01 01:50:23 25 4
gpt4 key购买 nike

谁能告诉我如何循环遍历 div 中的 anchor 标记并找到下一个 sibling ?

到目前为止我有这个。

var menu = document.getElementById('menu');
var links = menu.getElementsByTagName('a');

如何循环链接?我可以使用 .nextSibling 来查找下一个兄弟是否是 div 吗?

最佳答案

nextSibling DOM 节点的属性在所有浏览器中都能完美运行,并且完全符合您的期望。如果没有下一个 sibling ,则返回 null .

遍历 NodeList (这是 getElementsByTagName 返回的)与使用标准 for 遍历数组相同环形。以下将遍历链接并在每次找到其下一个兄弟是 <div> 时发出警报:

var menu = document.getElementById('menu');
var links = menu.getElementsByTagName('a');

// Iterate over the links
for (var i = 0, len = links.length, link; i < len; ++i) {
link = links[i];
if (link.nextSibling && link.nextSibling.nodeName == "DIV") {
alert("Next sibling is DIV! " + link.innerHTML);
}
}

请注意,在非 IE 浏览器中,HTML 中元素之间的空白被视为文本节点。在考虑每个链接的下一个兄弟是什么时,您可能希望忽略这些空白节点。以下将执行此操作:

function isWhitespace(node) {
return node.nodeType == 3 && /^\s*$/.test(node.data);
}

// Iterate over the links
for (var i = 0, len = links.length, link, next; i < len; ++i) {
link = links[i];
next = link.nextSibling;
if (next && isWhitespace(next)) {
next = next.nextSibling;
}
if (next && next.nodeName == "DIV") {
alert("Next sibling is DIV! " + link.innerHTML);
}
}

关于JavaScript 的下一个兄弟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4051612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com