getParent函数不工作在ie

时间:2010-01-19 18:16:06

标签: javascript jquery html css cross-browser

我有这个功能:

jQuery.fn.getParent = function(num) {
var last = this[0];
for (var i = 0; i < num; i++) {
    last = last.parentNode;
}
return jQuery(last);
};

和这个html:

<div class="statuscontainer">
<div class="title">
Title of div here
</div>
blah blah blah blah <br>
<a onclick="$(this).getParent(4).fadeTo("slow",.3);">fade only this div</a>
</div>


<div class="statuscontainer">
<div class="title">
Title of div here
</div>
blah blah blah blah <br>
<a onclick="$(this).getParent(4).fadeTo("slow",.3);">fade only this div</a>
</div>

我想要的是,每个链接应该淡化它的主要status容器div而不是所有其他div,这是使用jQuery GetParent完成的。​​

这在firefox / chrome / safari中效果很好,但是在IE 7/8中,只有等等等等和链接都褪色而不是整个“statuscontainer”。

你有什么建议?

由于

4 个答案:

答案 0 :(得分:1)

我看不出代码中出了什么问题,看起来很简单。

也许使用其中一个JQuery函数有帮助吗?

我假设它是JQuery的核心功能,任何跨浏览器问题都可能在那里得到解决。

答案 1 :(得分:1)

谢谢大家,我发现解决方案,一些没有褪色的div,位于“相对”,一旦我删除了定位,它就起作用了:)

由于

答案 2 :(得分:0)

为什么不使用jQuery('theElementSelector').parents(':eq(3)');注意我并没有看到你实际使用的是什么索引,但它应该是3或4依赖。

答案 3 :(得分:0)

我建议改用$(this).closest('.statuscontainer').fadeTo()。这样,无论<a>在DOM中的哪个位置 - 它都会在父母中找到最接近的.statuscontainer.closest() docs