jQuery:检查元素是否分配给var

时间:2010-10-30 12:54:36

标签: javascript jquery

我正在尝试创建一个简单的按钮管理器来选择并最终取消选中包含CSS类img的所有已检查的.my_class元素,为什么这不起作用?

var last_selected;
$("img.my_class").click ( function () {
    if (last_selected != null) alert ($(this) == last_selected); // returns false everytime
    last_selected =  $(this);
});

3 个答案:

答案 0 :(得分:1)

它不起作用,因为每次调用$(this)时都会创建一个新的jQuery包装器对象。

相反,请尝试保存“this”:

var last_selected;
$("img.my_class").click ( function () {
  if (last_selected != null) alert (this === last_selected);
  last_selected =  this;
});

答案 1 :(得分:1)

为什么不将'selected'类分配给当前选择的img?

$('img.my_class').click(function()
{
    // remove the selected class from the previous selected
    $('img.my_class.selected').removeClass('selected');
    // flag the current one as selected
    $(this).addClass('selected');
});

答案 2 :(得分:0)

每次打包this时,都会创建一个新的jQuery对象。两个jQuery对象彼此不相同只是因为它们包含相同的元素($(this) != $(this))。

相反,将this本身分配给last_selected,一切都应按预期工作。

var last_selected;
$("img.my_class").click ( function () {
    if (last_selected != null) alert (this == last_selected);
    last_selected = this;
});