jQuery: проверить значение атрибута ‘Value’ и изменить

#jquery #button #attributes #attr

#jquery #кнопка #атрибуты #attr

Вопрос:

Я пытаюсь установить значение кнопки при нажатии, чтобы оно менялось каждый раз. Если значение равно ‘Accept’, сделайте его ‘Cancel’ и наоборот.

В настоящее время у меня есть: $('button').attr({ value:"Accept"}) .

Теперь это устанавливает значение кнопки для принятия. Я хочу что-то сделать:

Если значение атрибута = ‘Принять’, сделайте его ‘Отклонить’, иначе сделайте его ‘Принять’.

Большое спасибо

Комментарии:

1. Не думайте, что у attr есть такая подпись! api.jquery.com/attr

2. Думаю, я должен был прочитать свою собственную ссылку, а?

Ответ №1:

Вот и все:

 $( button ).click( function () {
    this.value = this.value === 'Accept' ? 'Decline' : 'Accept';
});
 

Живая демонстрация: http://jsfiddle.net/kF378/1/

Ответ №2:

Все, что вам нужно, это оператор if / then в вашем обработчике кликов, который проверяет текущее состояние кнопки, а затем устанавливает его соответствующим образом.

 $('button').bind('click', function () {
    var $this = $(this);
    if ($this.attr('value') == 'Accept') {
        $this.attr('value', 'Decline');
    } else {
        $this.attr('value', 'Accept');
    }
});
 

Ответ №3:

Ответ Сайма, вероятно, лучше, но я опубликую это для развлечения:

 var invert = {
    "Accept": "Decline",
    "Decline": "Accept"
};

$('#foo').click( function () {
    this.value = invert[this.value];
});
 

JSFiddle