Вопрос по javascript, jquery – JQuery получить входное значение в цикле .each

10

Я пытаюсь получить входное значение в каждом цикле флажка, я не могу понять, как заставить это работать, значение продолжает выводиться как первое значение флажка.

$('.custemb, input[name=cb], input[class=multadd]').live("click", function() {

    $('input[class=multadd]:checked').each(function(index) {
        val = index + 2;
        valu = $('input[class=multadd]:checked').val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
});

проблема в выводе переменнойvalu это первый флажок общего цикла, а не текущий флажок цикла, мне нужно текущее значение.

Есть идеи?

Ваш Ответ

4   ответа
2

this чтобы найти элемент управления, который был нажат

$('input[class=multadd]:checked').each(function(index) {
        val = index + 2;
        valu = $(this).val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
Error: User Rate Limit Exceededelement ...
3

$('.custemb, input[name=cb], input[class=multadd]').live("click", function() {

    $('input[class=multadd]:checked').each(function(index) {
        var $this = $(this);
        val = index + 2;
        valu = $this.val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
});
.each() предлагает второй параметрelement которая является альтернативойthis
вы не получили его ... используя второй параметр, который вы можете (в других случаях) извлечь метод для каждой итерации и, следовательно, возможно, создать сценарий повторного использования магическим образом ...
@AndreasNiedermair, который, вероятно, сохранит один поиск и увеличит производительность. Хороший звонок, приятель
35

Ты можешь использоватьthis чтобы получить доступ к текущему элементу в цикле:

valu = $(this).val();

Текущий элемент также отправляется в качестве параметра в функцию обратного вызова, поэтому вы можете выбрать его:

.each(function(index, elem) {

Затем используйте параметр:

valu = $(elem).val();
Error: User Rate Limit Exceeded$(elem).is(':radio')Error: User Rate Limit Exceeded$(elem).is(':checked')Error: User Rate Limit Exceeded$(elem).is(':radio:checked').
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededelemError: User Rate Limit Exceeded$()Error: User Rate Limit Exceeded$(this)Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded.each(function(index, elem) {Error: User Rate Limit Exceeded
1

var texts= $(".class_name").map(function() {
    return $(this).val();         
}).get();
зачем нужен .get ()? это функция AJAX.

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