Javascript IE和FF之间的下一个显著区别是什么?
我刚刚用raphaeljs编写了一个用于分层的javascript代码,它在FF上运行得非常好。 但是IE上没有。问题是IE对任何对象返回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]); }
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;
}
}