gpt4 book ai didi

javascript - 如何在没有 JQuery 的情况下正确实现跨浏览器兼容的 nextSibling/nextElementSibling 函数?

转载 作者:行者123 更新时间:2023-11-29 15:46:05 24 4
gpt4 key购买 nike

我需要更新一些旧的 Javascript 以跨浏览器兼容。该代码最初是为 IE6 创建的,并且由于 HTML 的布局方式而大量使用 nextSibling 和 previousSibling。

显然 nextSibling 和 previousSibling 在 Firefox 等中的工作方式不同。下一个最佳选择 nextElementSibling 在旧的 IE 浏览器中不起作用。看来我需要做的是创建一个适用于大多数浏览器的 nextElementSibling 等效函数。

这是我的尝试,但似乎不太正确:

function getNextElementSibling(CurrentElement) {
if (CurrentElement.nextElementSibling) {
return CurrentElement.nextElementSibling
} else {
do {
CurrentElement = CurrentElement.nextSibling;
} while (CurrentElement && CurrentElement.nodeType !== 1);
return CurrentElement;
}
}

需要做什么来修复/更换它?

请注意,JQuery 和其他库不是一个选项

最佳答案

我有同样的问题,我觉得奇怪的是 dojo-framework(我使用的是 v1.7)没有为此提供方便的方法。

我的浏览器兼容性问题与 IE 版本 7、8 和 9 以及 webkit 浏览器(最新版本)有关,我也在 Firefox 14 上测试过它并且似乎可以工作。

function getNextElementSibling(element) {

if (element.nextElementSibling) {

return element.nextElementSibling;
} else {

return element.nextSibling;
}
}

关于javascript - 如何在没有 JQuery 的情况下正确实现跨浏览器兼容的 nextSibling/nextElementSibling 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048322/

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