我有这个jQuery代码:
$(this).closest('div:has(.FIND_ME)').find('.FIND_ME').hide();
但是类.FIND_ME
的元素并不隐藏在IE8和9中。
这个问题是Search for an item with a common ancestor
的延续HTML:
<div>
<div><!-- all div without ID -->
<span>some text</span>
<div>
<span id="listener1">click here</span>
<span>sometext</span></div>
<div>
<span class="FIND_ME">Result Here</span></div>
</div>
<div>
<span>some text</span>
<div id="div1">
<div id="div2">
<span id="listener2">click here</span>
<span>sometext</span></div>
</div>
<div>
<span class="FIND_ME">Result Here</span></div>
</div>
</div>
答案 0 :(得分:12)
我正在设置一个变量element
到this
,然后我打电话给:
element.closest('a')
但是元素现在是DOM元素而不是jQuery对象。所以改为:
$(element).closest('a')
修好了。
答案 1 :(得分:0)
你是对的!我不知道为什么,但它现在有效!错误发生在另一个地方。
因此,closest()
在IE 8/9中运行良好。在jQuery 1.6上测试过。
答案 2 :(得分:0)
closest = function (target, tag) {
if (target.parentElement == "undefined") {
return null;
}
if (target.parentElement.localName == tag) {
return target.parentElement;
}
return this.closest(target.parentElement, tag);
};