2

この基本的な例を参照してください。

<div id="cont">
   <input type=button value='button'>  
</div>
<input type=button value='button'> 

そしてスクリプト:

$('input').click(function(){
    console.log($(this));
    console.log($('#cont').has($(this)));
    console.log($('#cont').has($(this)).length);
    console.log("---");
    });​

両方のボタンクリックで、$(this)console.logによるの値は同じです。

[<input type=​"button" value=​"button">​] 

なぜ彼らはまだ異なる結果をもたらすのですか?

言い換えると、ログ$(this)をコンソールすると、一部の情報が表示されません。この情報は、要素の一意のIDを指している可能性があります。しかし、それは何ですか、どこに保存されていますか?ログに表示されないのはなぜですか?

4

3 に答える 3

0

ボタンのマークアップが同じなので、同じに見えるだけです。

編集例

于 2012-06-05T12:13:55.147 に答える
0

私はあなたが求めていることを理解していると思います。jQuery 関数での使用thisは、イベントが発生している要素に関連しています。あなたの場合、クリックイベントが発生している特定の入力。両方の入力に同じ HTML がありますが、それらは異なる要素です。したがって、#contdiv の外側をクリックしても、console.log($('#cont').has($(this)));何も返されません。

于 2012-06-05T12:15:44.013 に答える