Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么;这";jQuery中的参数返回带有锚的href_Javascript_Jquery - Fatal编程技术网

Javascript 为什么;这";jQuery中的参数返回带有锚的href

Javascript 为什么;这";jQuery中的参数返回带有锚的href,javascript,jquery,Javascript,Jquery,我有一个例子: <div id="example"> <a href="http://www.google.com/#1">Hello</a> <a href="http://www.google.com/#4">Hello</a> </div> 返回: http://www.google.com/#1 http://www.google.com/#4 但是 返回 <a href="http:

我有一个例子:

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

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

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

返回

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

<a href="http://www.google.com/#4">Hello</a>​
​
​
为什么在第2行中,如果'this'参数添加“string”,则返回锚点的HREF属性? jQuery文档说如果过滤器有一个函数参数,
“this”是当前的DOM元素

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


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

当你说“返回”时,你的意思是这就是你在浏览器控制台中从
控制台.log()调用中看到的内容吗?(我想这就是你的意思……)你把这两个结果放错方向了吗?“+this+”应该返回href的值-是,结果是反向的。我修复了这个问题,以便结果与原因正确链接。是否有返回
href
的规范?当我开始写我的答案时(后来我放弃了,取而代之的是你的答案),我想说它也依赖于实现——但我不确定。我没有发现任何规范,但这是一种(鲜为人知的)事实,而且它显然是通用的。旧的理由可能很可笑,我想知道它。。。“stringifier”是href,如果不存在,则为目标。
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>​