0

重複の可能性:
jQuery オブジェクトをどのように比較しますか?

jQueryを使用して、アクティブにクリックされたアイテムをアイテムのリストに保存しています。新しくクリックされたアイテムが以前にクリックされたアイテムと同じかどうかを検出して、サポートの表示を切り替えたいdiv. 私のコードは次のようになります。

var curPin;

$('.pin').click(function(){
  var $pin = $(this);
  if (curPin == $pin){
    console.log('true');
  } else {
    curPin = $pin;
    console.log('false');
  }
}

なぜこれが平等に出てこないのですか?これを行うより良い方法はありますか?

4

4 に答える 4

3

if ($(this).is(curPin))要素が同じかどうかを確認するために使用します。

于 2012-04-23T15:17:21.990 に答える
1

DOM要素を比較するだけです。

if(curPin.get(0) == $pin.get(0)) {
    // do something
}
于 2012-04-23T15:16:06.047 に答える
1

You're not comparing elements, but jQuery objects, and jQuery objects are always considered as different, even if they contain the exact same elements.

Comparing the DOM elements themselves indeed solves your problem. As suggested by Esailija, you can use the is() method to check is the jQuery object stored in curPin contains the current element:

var curPin;

$(".pin").click(function() {
    var $pin = $(this);
    if (curPin.is(this)) {
        console.log("true");
    } else {
        curPin = $pin;
        console.log("false");
    }
}
于 2012-04-23T15:10:20.203 に答える
0

要素にIDがある場合、それを使用して次のように比較できます-

var curPin;  

$('.pin').click(function(){   
  var $pin = $(this).attr('id');  
  if (curPin == $pin)
  {     
    console.log('true');   
  } 
  else 
  {     
    curPin = $pin;     
    console.log('false');   
  } 
} 
于 2012-04-23T15:11:59.280 に答える