Селектор значений jQuery

У меня есть:

<button class="Delete" value="1">Delete</button>
<button class="Delete" value="2">Delete</button>
<button class="Delete" value="3">Delete</button>

Указанная переменная X, содержащая значение (в этом случае либо 1, a 2, либо 3), то как скрыть кнопку, соответствующую значению в X?

Я хочу сказать что-то вроде:

$('button').val(x).hide();

Значение: "Кнопка, значение которой равно x, скрыть".

Ответ 1

$('button[value="' + x + '"]').hide();

Ответ 2

Вы можете написать свой собственный пользовательский селектор (я просто почувствовал, что кто-то должен его упоминать). Может выглядеть так:

(function($) {
    $.extend($.expr[':'], {
         val: function(elem, i, attr) {
             return elem.value === attr[3];
         }
    });
}(jQuery));

$('button:val(2)').hide();

Ответ 3

Вы сделаете это внутри фактического селектора:

$('button[value="foo"]').hide();

Ответ 4

Это потребует конкатенации x в xpath, но я не могу сейчас думать о другом.

$(кнопка [value = '1']) скрыть();.

РЕДАКТИРОВАТЬ: удалено @, очевидно, устарело, как и я:)

Ответ 5

Вам даже не нужно вручную назначать значения кнопкам:

var i = 0; $('.Delete').attr('value', function() {i++;    return ''+i;});

сделает это за вас. Теперь вы подсчитали значения ваших кнопок. Но неважно, (вам даже не нужны значения!) Вы можете скрыть "ЭТО нажав кнопку", выполнив:

$(".Delete").click(function() {
$(this).html("DELETED!").delay(900).slideUp(600).hide();
});

Я добавил немного анимации. Или объедините оба! CIAO:)