如何用循环简化它?

问题描述 投票:0回答:2

我试图用一个循环来简化这个。每个块中唯一发生变化的是_1、_2、_3(等)。基本上,我想听一堆(独特的)2 选项收音机来改变并做相应的事情。

    $( "input[name='radioset_1'" ).change(function() {
        if ($( "#option_A_1").prop( "checked" )) {
        // do option A thing for radioset_1
        } else {
        // do option B thing for rasioset_1
    });

     $( "input[name='radioset_2'" ).change(function() {
        if ($( "#option_A_2").prop( "checked" )) {
        // do option A thing for radioset_2
        } else {
        // do option B thing for rasioset_2
    });

     $( "input[name='radioset_3'" ).change(function() {
        if ($( "#option_A_3").prop( "checked" )) {
        // do option A thing for radioset_3
        } else {
        // do option B thing for rasioset_3
    });

     $( "input[name='radioset_4'" ).change(function() {
        if ($( "#option_A_4").prop( "checked" )) {
        // do option A thing for radioset_4
        } else {
        // do option B thing for rasioset_4
    });
javascript jquery radio-button
2个回答
1
投票

如果你想循环试试这个

var blocks_count = 4; // or how many blocks do you have
for(var i = 1; i <= blocks_count; ++i){
    $( "input[name='radioset_" + i + "'" ).change(function() {
        if ($( "#option_A_" + i).prop( "checked" )) {
        // do option A thing for radioset_i
        } else {
        // do option B thing for rasioset_i
    });
}

-1
投票

这对我有用:

    $( "input[type=radio]").change(function(e) {
        var str = ($(this).attr("name"));
        var arr = str.split("_");
        if ($( "#option_A_" + arr[1] ).prop( "checked" )) {
            // do option A thing for this radio   
        } else {
            // do option A thing for this radio
        };
    });
© www.soinside.com 2019 - 2024. All rights reserved.