Сократить JQuery для нескольких div / флажки - PullRequest
0 голосов
/ 12 мая 2011

Я написал скрипт, который показывает / скрывает div в зависимости от того, какой флажок установлен.Код, который я написал ниже, работает нормально, но ...

Есть ли способ сократить этот код без необходимости повторения оператора if / else для каждого дополнительного флажка / элемента div, который мне нужно будет добавить?

$(function() {
    $("#submit_button").click(function(){
        if ($("input[value='poster1']:checked").val()){
            $("#results1").show();
        }
        else {
            $("#results1").hide();
        }
        if ($("input[value='poster2']:checked").val()){
            $("#results2").show();
        }
        else {
            $("#results2").hide();
        }
        if ($("input[value='poster3']:checked").val()){
            $("#results3").show();
        }
        else {
            $("#results3").hide();
        }

});

1 Ответ

0 голосов
/ 12 мая 2011
$("#submit_button").click(function() {
    $('input').each(function(i,el){
        var $el = $(el),
            num = $el.val().match(/poster(\d*)/)[1];
        if ($el.filter(':checked').length) {
            $('#results'+num).show();
        } else {
            $('#results'+num).hide();
        }
    });
});

Демо →

...