使用javascript在运行时更改多个select的id
当我想在运行时为select设置不同的id时,我遇到了问题,select的数量可能是四个或更多,但我需要所有的id都不同 有人能帮我在运行时找到select并使用javascript为每个select分配不同的id吗使用javascript在运行时更改多个select的id,javascript,jquery,Javascript,Jquery,当我想在运行时为select设置不同的id时,我遇到了问题,select的数量可能是四个或更多,但我需要所有的id都不同 有人能帮我在运行时找到select并使用javascript为每个select分配不同的id吗 <div id="div1" > <select > <option value="OPTION 1" >OPTION 1</option> </select> <select> <option v
<div id="div1" >
<select >
<option value="OPTION 1" >OPTION 1</option>
</select>
<select>
<option value="OPTION 1" >OPTION 1</option>
</select>
<select>
<option value="OPTION 1" >OPTION 1</option>
</select>
<select>
<option value="OPTION 1" >OPTION 1</option>
</select>
<select >
<option value="OPTION 1" >OPTION 1</option>
</select>
.
.
.
.
<select >
选择1
选择1
选择1
选择1
选择1
.
.
.
.
只需获取所有选择的引用,然后迭代它们并相应地设置id
var i = 0; // or whatever
$("select").each(function(){
this.id = i;
i++
});
我使用了这种方法,而不是将索引传递给回调,因为这样可以更容易地将id更改为不同的值
如果不需要这样做,@Adil的方法更简洁。首先查找所有
选择的,其中div具有iddiv1
。现在,您可以使用为每个选择分配id
$('#div1 select').each(function(index, obj){
obj.id = "sel" + index;
});
这应该做到:
$('select').prop('id', function(index, old) {
return old || 'select_' + index;
});
如果元素还没有属性,它将设置一个新的id
属性
如果需要多次应用,最好使用专用id生成器:
var idGenerator = function(prefix) {
var num = 0;
return function() {
return prefix + num++;
}
}('select_');
$('select').prop('id', idGenerator);
选择标记是动态创建的吗?或者您也可以指定所选项目的索引,
var idGenerator = function(prefix) {
var num = 0;
return function() {
return prefix + num++;
}
}('select_');
$('select').prop('id', idGenerator);