2012-06-02 34 views
1

我需要從每個選中的複選框中獲取ID。現在我能夠得到很好的數額,但我似乎無法得到每個ID。如何獲取Jquery中複選框的ID

<input name="pay" class="pay_me" id="4" type="checkbox" value="6.00" /> 
<input name="pay" class="pay_me" id="5" type="checkbox" value="9.00" /> 
<input name="pay" class="pay_me" id="6" type="checkbox" value="3.00" /> 
<input name="pay" class="pay_me" id="9" type="checkbox" value="23.00" /> 

jQuery的

$(document).ready(function() { 
    $('.pay_me').change(

    function() { 
     var t_payme = 0; 
     $('.pay_me:checked').each(function() { 
      t_payme += parseFloat($(this).val()); 
     }); 
     t_payme = parseFloat(t_payme).toFixed(2); 
     $('#to_payme').val(t_payme); 
    }); 
});​ 

有了這個,我可以和我的文本框

<input name="to_payme" id="to_payme" type="text" value="0.00" /> 

我還需要檢查的ID號這樣的4 | 6 | 9額外的文本框

<input name="ids_to_update" id="ids_to_update" type="text" value="" /> 
+0

更高效地使用'parseFloat(this.value)'或只是'+ this.value' – RobG

回答

2

在這裏你去:

$(document).ready(function() { 
    $('.pay_me').change(function() { 
     var t_payme = 0, ids = []; 
     $('.pay_me:checked').each(function() { 
      ids.push(this.id); 
      t_payme += parseFloat($(this).val()); 
     }); 
     t_payme = parseFloat(t_payme).toFixed(2); 
     $('#to_payme').val(t_payme); 
     $('#ids_to_update').val(ids.join('|')); 
    }); 
}); 

on jsFiddle

4

您可以獲取元素ID與this.id(或$(this).prop("id"))。使用數組存儲的ID喜歡這裏:

$(document).ready(function() { 
    $('.pay_me').change(function() { 
     var t_payme = 0, checked = []; 
     $('.pay_me:checked').each(function() { 
      t_payme += parseFloat($(this).val()); 
      checked.push(this.id); 
     }); 
     t_payme = t_payme.toFixed(2); 
     $('#to_payme').val(t_payme); 
     $('#ids_to_update').val(checked.join("|")); 
    }); 
});​ 

DEMO:http://jsfiddle.net/rA5cv/

0

跟蹤的ID的數組:

var ids = []; 
$('.pay_me:checked').each(function() { 
    t_payme += parseFloat($(this).val()); 
    ids.push($(this).attr("id")); 
}); 

//now do something with the array of IDs...