Home > Net >  Javascript syntax to add a loop variable inside another variable
Javascript syntax to add a loop variable inside another variable

Time:12-09

I am looking to incorporate the following id variables: e1, e2, etc. into a loop.

What is the right syntax to handle the '#e' i and '#e' i elements, to avoid writing multiple functions eg. : $(document).on('change', '#e1', function() { and var exp = 'e1';

PS: Currently, the below on change function is not triggered.

for (var i = 0; i < 10; i  ) {      
        
$(document).ready(function() {          
              $(document).on('change', '#e' i, function() {
                if ($("#e" i).is(":checked")) {     var chk = $('#e' i).val(); var exp = 'e' i; }
                else {  chk = 0 ;   var exp = 'e' i;    }
                $.ajax({
                        url: "modify.php",
                        method: "POST",
                        data: {check: chk, experience: exp },
                  });
              });       
            })
            ;
        }       

CodePudding user response:

You're making your life more difficult and your code too complicated. Consider this approach, which uses a class name rather than dynamic id's.

$(document).ready(function() {
  $('body').on('change', '.changeable', function() {
    let data = {
      check: $(this).is(":checked") ? $(this).val() : 0,
      experience: $(this).data('ref')
    }
    return console.log(data);
    $.ajax({
      url: "modify.php",
      method: "POST",
      data: data,
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='checkbox' data-ref="e1"  value='val1' />
<input type='checkbox' data-ref="e2"  value='val2' />
<input type='checkbox' data-ref="e3"  value='val3' />

  • Related