5

我有这个例子:

<div id="example">
    <a href="http://www.google.com/#1">Hello</a>
    <a href="http://www.google.com/#4">Hello</a>
</div>

而这两行 jQuery:

jQuery("a").filter(function() {
    console.log(""+this+"")
});

回报:

 http://www.google.com/#1

 http://www.google.com/#4

jQuery("a").filter(function() {
    console.log(this);
});

退货

<a href="http://www.google.com/#1">Hello</a>​

<a href="http://www.google.com/#4">Hello</a>​

为什么第 2 行,返回锚的 HREF 属性 IF 'this' 参数添加一个“字符串”?jQuery 文档说如果过滤器有一个函数参数,"this" is the current DOM element

4

1 回答 1

12

""+this相当于this.toString()。在一个a元素上它返回href(是的,这很奇怪,可能是为了与很久以前有用的东西兼容,但这就是它在所有浏览器上所做的)。

在第二种情况下,您不是调用toString而是依赖于浏览器的控制台格式化方法。做出了不同的选择:例如在 Chrome 上,它通常返回外部 html(如果它很大,则作为可浏览的树)。

于 2013-02-20T16:10:09.767 回答