5

たとえば、これがあります:

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

そして、この2行の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 docs は、フィルターに関数引数がある場合、"this" is the current DOM element

4

1 に答える 1

12

""+thisと同等this.toString()です。a要素ではhref(はい、それは奇妙で、おそらくずっと前に便利だったものとの互換性のためですが、それはすべてのブラウザーで行うことです) を返します。

2 番目のケースでは、呼び出しているのではtoStringなく、ブラウザ依存のコンソール フォーマット メソッドを呼び出しています。さまざまな選択が行われました。たとえば、Chrome では通常、外側の html が返されます (大きい場合は参照可能なツリーとして)。

于 2013-02-20T16:10:09.767 に答える