每个JQuery都不适用于Google Chrome中的<object>

时间:2016-03-08 11:16:06

标签: jquery svg

JQuery.each返回&#34;匿名函数&#34;对于Google Chrome中的<object>元素。其他元素也可以。

我该如何解决这个问题?

这里我们有三个带有&#39; icon-white&#39;类:

<object class = 'icon-white' data="http://konradpapala.beep.pl/test/040__file_delete.svg" type="image/svg+xml"></object>

<object class = 'icon-white' data="http://konradpapala.beep.pl/test/040__file_delete.svg" type="image/svg+xml"></object>

<div class = 'icon-white'>
 this works
</div>

以下是JavaScript代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

$(function(){
            $('.icon-white').each(function(){
                console.log(this);
        })
})

编辑,这是一个例子:

http://plnkr.co/edit/NpbVPLMvqo0Y2OfPrDbP?p=preview

我们在控制台中可以看到:两次&#34;匿名功能&#34;返回,一次(正确)返回<div>元素。

1 个答案:

答案 0 :(得分:3)

The HTML specification定义HTMLObjectElement具有旧的调用者。

This表示传统来电者的对象有[[Call]]。

然后我们看in this specification并看到有[[Call]]的对象是函数。

所以你的期望需要调整而不是Chrome。

尽管Firefox也返回了Function,但似乎jQuery拦截了这个并将返回转换回Object元素,但它不会对Chrome执行此操作,这似乎表明此处存在jQuery错误。