我需要更新一些旧的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;
}
}