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>
元素。
答案 0 :(得分:3)
The HTML specification定义HTMLObjectElement具有旧的调用者。
This表示传统来电者的对象有[[Call]]。
然后我们看in this specification并看到有[[Call]]的对象是函数。
所以你的期望需要调整而不是Chrome。
尽管Firefox也返回了Function,但似乎jQuery拦截了这个并将返回转换回Object元素,但它不会对Chrome执行此操作,这似乎表明此处存在jQuery错误。