如何保存jquery选择器供以后使用

时间:2011-02-18 05:46:37

标签: jquery jquery-selectors

我有以下代码......

$('#item_' + code + ' .delete').hide();
$('#item_' + code + ' .deleting').show();
$('#item_' + code).slideUp(400, function() {
    $(this).remove();
    $('#top .message').html('Item has been deleted');
});

我想保存我在变量中使用的选择器,并使用它来执行操作,而不是每次都搜索DOM。

所以我像这样保存选择器......

 var saved = $('#item_' + code);

但是如何更改代码的其余部分呢?我对jQuery不太熟悉,因此想知道如何做到这一点。这会有用......

$(saved).(' .delete').hide();
$(saved).(' .deleting').hide();
$(saved).slideUp(400, function() {
    $(this).remove();
    $('#top .message').html('Item has been deleted');
});

5 个答案:

答案 0 :(得分:5)

您可以使用find()

var saved = $('#item_' + code);

saved.find('.delete, .deleting').hide();
saved.slideUp(400, function() {
    $(this).remove();
    $('#top .message').html('Item has been deleted');
});

答案 1 :(得分:5)

我会添加另一个替代

$('.delete', saved).hide();
$('.deleting', saved).show()
...

答案 2 :(得分:4)

您可以将其存储在变量中:

var myVar = $('#item_' + code + ' .delete').hide();

然后如果你想添加它只需添加到var:

myVar.css("background","green");

相当于:

$('#item_' + code + ' .delete').hide().css("background","green");

答案 3 :(得分:2)

使用findchildren方法,您可以将选择器应用于上一个查询的结果。

E.g。

var saved = $('#item_' + code);

saved.find(".delete").hide();
saved.find(".deleting").show();
saved.slideUp(400, function() {
    $(this).remove();
    $('#top .message').html('Item has been deleted');
});

答案 4 :(得分:-2)

试试这个......

var saved = ('#item_' + code);

 $(saved + ' .delete').hide();
    $(saved + ' .deleting').show();
    $(saved).slideUp(400, function() {
        $(this).remove();
        $('#top .message').html('Item has been deleted');
    });