jQuery最接近的人在IE8 / 9中不起作用

时间:2015-01-20 08:52:02

标签: javascript jquery internet-explorer-8

我有这个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>

3 个答案:

答案 0 :(得分:12)

我正在设置一个变量elementthis,然后我打电话给:

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);
};