Как сохранить селектор jquery для дальнейшего использования - PullRequest
6 голосов
/ 18 февраля 2011

У меня есть следующий код ...

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

Ответы [ 6 ]

5 голосов
/ 18 февраля 2011

Я добавлю еще одну альтернативу

$('.delete', saved).hide();
$('.deleting', saved).show()
...
5 голосов
/ 18 февраля 2011

Вы можете использовать find():

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

saved.find('.delete, .deleting').hide();
saved.slideUp(400, function() {
    $(this).remove();
    $('#top .message').html('Item has been deleted');
});
4 голосов
/ 18 февраля 2011

Вы можете сохранить его в переменной:

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

, а затем, если вы хотите добавить к нему, просто добавить к переменной:

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

, что эквивалентно:

$('#item_' + code + ' .delete').hide().css("background","green");
2 голосов
/ 18 февраля 2011

Используйте методы find или children, которые позволяют применять селекторы к результату предыдущего запроса.

* 1005 Е.Г. *

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');
});
0 голосов
/ 12 августа 2017

Используйте функцию .each для сохраненного выбора.

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

Например:

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");
});
0 голосов
/ 18 февраля 2011

Попробуйте это ...

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

 $(saved + ' .delete').hide();
    $(saved + ' .deleting').show();
    $(saved).slideUp(400, function() {
        $(this).remove();
        $('#top .message').html('Item has been deleted');
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...