使用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

当我想在运行时为select设置不同的id时,我遇到了问题,select的数量可能是四个或更多,但我需要所有的id都不同 有人能帮我在运行时找到select并使用javascript为每个select分配不同的id吗

<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具有id
div1
。现在,您可以使用为每个
选择
分配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);