Использование jQuery для перебора одинаковых флажков - PullRequest
1 голос
/ 28 января 2010

Я пытаюсь использовать jQuery each () для итерации по группе флажков с именем supplier_type []. Все они имеют уникальные идентификаторы, поэтому я мог бы просто переписать это, чтобы обработать массив уникальных идентификаторов, но я хотел выяснить, где я ошибся.

Предупреждение показывает, что пока intIndex видит правильное количество элементов, this всегда содержит первый элемент.

function setUp(){
    $( 'input[name=supplier_type[]]' ).each(
        function( intIndex ){
            var type = $(this+':checked').val() + 'Table';
            $("#"+type).show("slow");
            alert($(this+':checked').val());  // sees first one each iter
        }       
    );
}

Так как мне обратиться к правильному элементу? Нужно ли использовать bind ()?

Спасибо!

// Редактировать Рабочая версия основана на ответе Дрю Уиллса. Спасибо, Дрю!

function setUp(){
    $( 'input[name=supplier_type[]]' ).each(
        function( intIndex ){
            if($(this).attr('checked')) {
                var type = $(this).val() + 'Table';
                $("#"+type).show("slow");
            }
        }       
    );
}

1 Ответ

2 голосов
/ 28 января 2010

Я не уверен, что понимаю ваш вопрос на 100%, но я очень подозрительно отношусь к следующему стилю селектора:

$(this+':checked')

Полагаю, вы хотите узнать значение атрибута 'checked', которое было бы больше похоже на ...

$(this).attr('checked')
...