我有这个例子:
<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行,返回锚IF的HREF属性'this'这个参数添加一个“字符串”?
jQuery文档说如果过滤器有一个函数参数,"this" is the current DOM element
答案 0 :(得分:12)
""+this
相当于this.toString()
。在a
元素上它返回href
(是的,这很奇怪,可能与很久以前有用的东西兼容,但这就是它在所有浏览器上的作用)。
在第二种情况下,您不是调用toString
,而是调用依赖于浏览器的控制台格式化方法。做出了不同的选择:例如,在Chrome上,它通常返回外部html(如果它很大,则为可浏览的树)。