增量元素ID

时间:2013-05-04 15:29:35

标签: javascript jquery

但是使用此代码,所有复选框元素都具有相同的ID ...

var count;
var length = $('input[type=checkbox]').length
for(count=1;count<=length;count++){
    $('input[type=checkbox]').attr('id',count)
}

5 个答案:

答案 0 :(得分:4)

使用.prop()或.attr()

设置元素ID
$(':checkbox').prop("id", function( i ){
    return i;
});

jsBin demo

使用.each()

设置元素ID
$(':checkbox').each(function( i ){
    this.id = i;
});

jsBin demo

两个例子都返回:

<input id="0" type="checkbox">
<input id="1" type="checkbox">
<input id="2" type="checkbox">
<input id="3" type="checkbox">

如果你想从1开始,只需使用:

this.id = i+1;

由于非HTML5(旧版)浏览器不支持数字ID,因此请将任何字符串前缀添加到ID号,例如"el"+ (i+1)

答案 1 :(得分:2)

$('input[type=checkbox]').prop('id', function(i) {
     return ++i;
});

答案 2 :(得分:1)

改为使用.each()

$('input[type=checkbox]').each(function(i) {
    // i is the 0-based index of this element in the matched set
    $(this).prop('id', i); 
});

答案 3 :(得分:1)

使用each()迭代选择器返回的元素并分配id。 数字ID通常不被认为是一个好习惯你的postfix的前缀与一些字符串。

 $('input[type=checkbox]').each(function(i){
   $(this).attr('id',"id_"+i)
 })

答案 4 :(得分:0)

使用它:

$(document).ready(function() {
   var count = 1;
   $("input[type='checkbox']").each(function(index,domobj) {
      $(domobj).prop("id",count++);
   });
});

当你的jquery 1.6 + 时使用.prop()
当您的jquery 1.6 -

时,请使用.attr()