jquery 我如何用循环来简化它?

xn1cxnb4  于 2023-04-29  发布在  jQuery
关注(0)|答案(2)|浏览(123)

我试着用一个循环来简化它。在每个块中唯一改变的是_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
    });
ohtdti5x

ohtdti5x1#

如果你想循环,试试这个

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
    });
}
nbnkbykc

nbnkbykc2#

这对我很有效:

$( "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
        };
    });

相关问题