2011-02-18 70 views
6

我有以下代碼...如何保存jQuery選擇供以後使用

$('#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'); 
}); 
+0

看看我的答案,你必須連接變量選擇器......這將工作..! – Vivek 2011-02-18 05:50:17

+1

@Vivek,你不必在評論中做廣告,你的答案如下。 – 2011-02-18 05:57:37

回答

5

我會在你保存的選擇

var SavedStuff = $(<something>); 
// other code 
SavedStuff.each(function (i, element) { 
    $(element).<jquery function>; 
}); 

添加另一種選擇

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

您可以將其存儲在一個變量:

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

,然後如果你想要添加到它只是增加了var:

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

相當於:

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

+1有用。我可以使用這種「鏈接」來提高可讀性。謝謝。 – vikmalhotra 2011-02-18 06:03:56

+0

請記住,jQuery是JavaScript。你可以混合搭配。 – 2011-02-18 06:04:58

-2

試試這個...

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

$(saved + ' .delete').hide(); 
    $(saved + ' .deleting').show(); 
    $(saved).slideUp(400, function() { 
     $(this).remove(); 
     $('#top .message').html('Item has been deleted'); 
    }); 
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'); 
}); 
5

您可以使用find()

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

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

使用。每個功能例如:

var SavedStuff = $(".Square"); // save all items with Square class 
// Other code 
// Later, add rhomboid to all squares 

SavedStuff.each(function (i, element) { 
    $(element).addClass("Rhomboid"); 
});