Javascript IE和FF之间的下一个显著区别是什么?

Javascript IE和FF之间的下一个显著区别是什么?,javascript,internet-explorer,compatibility,raphael,Javascript,Internet Explorer,Compatibility,Raphael,我刚刚用raphaeljs编写了一个用于分层的javascript代码,它在FF上运行得非常好。 但是IE上没有。问题是IE对任何对象返回nextSibling的null 如何正确使用它,或者是否有nextElementSibling调用IE 下面是我用来更改对象顺序的代码片段: n = items[selected_item_id].nextSibling.id; if (n != '') { items[selected_item_id].insertAfter(items[n]); }

我刚刚用raphaeljs编写了一个用于分层的javascript代码,它在FF上运行得非常好。 但是IE上没有。问题是IE对任何对象返回
nextSibling
null

如何正确使用它,或者是否有
nextElementSibling
调用IE

下面是我用来更改对象顺序的代码片段:

n = items[selected_item_id].nextSibling.id;
if (n != '') {
  items[selected_item_id].insertAfter(items[n]);
}


用拉斐尔创作


在这上面。仅IE9支持使用html im的nextElementSibling属性,IE的早期版本不支持该属性(您可以检查它)

如果需要,可以使用JQuery获得下一个同级,如下所示:

var sibling = $('#' + selected_item_id).next();
alert(sibling.attr('id'));

尝试使用以下函数。它是下一个同级的跨浏览器代码段

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

我猜这是因为jquery也使用相同的函数来获取代码中的下一个元素:(@Ahmet No,jquery的next()方法在IE中工作(显然).上面的代码没问题,你做错了。下面是一个示例对象,我正在使用Raphael对象…是的,它可以使用其他元素,但不能使用这些使用Raphaeljs创建的rvml元素。jquery命令的选择器部分没有问题,它可以获得它们的样式等。但不是下一个()call:/您希望为哪个对象获取下一个同级对象?
    function getNextElementSibling(CurrentElement) {
    if (CurrentElement.nextElementSibling) {
        return CurrentElement.nextElementSibling
    } else {
        do {
            CurrentElement = CurrentElement.nextSibling;
        } while (CurrentElement && CurrentElement.nodeType !== 1);
        return CurrentElement;
    }
}