разрезание jQuery и события щелчка

http://oreilly.com/catalog/javacook/chapter/ch18.html

Искать:

"Проблема

Вы хотите обработать данные из HTML-формы в сервлете. "

7
задан Christian Oudard 4 September 2008 в 14:06
поделиться

4 ответа

Следующий селектор должен также работать в jQuery: input:checkbox.

Можно затем представить в виде строки :gt(index) и :lt(index) фильтры вместе, поэтому если бы Вы хотите 5-е к 7-м флажкам, Вы использовали бы input:checkbox:gt(4):lt(2).

Для получения индекса в настоящее время нажимаемого флажка просто используйте $("input:checkbox").index($(this)).

9
ответ дан 7 December 2019 в 01:29
поделиться

Это - быстрое решение, но я дал бы каждому флажку уникальный идентификатор, возможно, с индексной подсказкой, как так:

<input id="checkbox-0" type="checkbox" />
<input id="checkbox-1" type="checkbox" />
<input id="checkbox-2" type="checkbox" />
<input id="checkbox-3" type="checkbox" />
<input id="checkbox-4" type="checkbox" />

Можно затем легко получить индекс:

$(document).ready(function() {
  $("input:checkbox").click(function() {
    index = /checkbox-(\d+)/.exec(this.id)[1];
    alert(index);
  });
});
1
ответ дан 7 December 2019 в 01:29
поделиться

Спасибо за ответ, samjudson.

После дальнейшего экспериментирования я нашел, что можно даже использовать просто $(':checkbox') выбрать их. Интересно, что можно использовать .slice() функция для получения диапазона но у Вас также есть опция выполнения его в селекторе с :gt и :lt. Я действительно нахожу синтаксис .slice() быть более чистым, чем использование селекторных фильтров, все же.

Я оказываюсь перед необходимостью говорить, что мне не нравится решение Ryan Duffield так же, потому что оно требует изменений в разметке и включает повторяющийся код.

0
ответ дан 7 December 2019 в 01:29
поделиться

@Gorgapor: Я предполагаю, что должен отвечать на вопросы немного менее буквально иногда.:-) Я полагал, что Вы были заблокированы вниз к требованию своего рода индекса. Я думаю, что Вы найдете, хотя это, поскольку Вы используете jQuery больше, Вы обычно, не должно делать такой вещи.

0
ответ дан 7 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: