本文介绍了parentNode或previousElementSibling在IE8中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一些javascript,并且在IE8中,parentNode或previviousElementSibling似乎都在破坏。该代码在firefox和IE9中运行良好。这是未实现的行:
$(submitter.parentNode.parentNode.previousElementSibling).children('#mark_as_broken' )。显示();
代码类似于
< form>< div>< input id = mark_as_broken>< / input>< / div>< / form>
< form>< div>< input id = mark_as_fixed>< / input>< / div>< / form>
其中mark_as_fixed输入是提交者。这适用于其他浏览器。
任何想法都不起作用,为什么?
previousElementSibling
。
这是一个应该有效的功能。 似乎工作。
var previousElementSibling = function(el){
if(el.previousElementSibling){
return el.previousElementSibling;
} else {
while(el = el.previousSibling){
if(el.nodeType === 1)return el;
}
}
}
$(previousElementSibling(submitter.parentNode.parentNode))
Seems to work.
var previousElementSibling = function( el ) {
if( el.previousElementSibling ) {
return el.previousElementSibling;
} else {
while( el = el.previousSibling ) {
if( el.nodeType === 1 ) return el;
}
}
}
$( previousElementSibling(submitter.parentNode.parentNode) )
EDIT:
You didn't mention jQuery, but you appear to be using its API. If so, you can just do this:
$(submitter).closest('form').prev().find('#mark_as_broken').show();
Based on your markup, it appears as though you should be using .find()
instead of .children()
.
这篇关于parentNode或previousElementSibling在IE8中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
08-30 06:18