#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];
});