使用addEventListener(而不是jquery)创建元素唯一ID

时间:2017-11-06 22:47:33

标签: javascript loops click addeventlistener

我有这个:

var divProducthere= document.getElementById('divProducthere'); //div 
var productbutton = document.getElementById('productbutton'); // button

  productbutton.addEventListener('click',prodElement);

   function prodElement(){
       for (var i = 0; i < 9; i++) {
        var selectProduct = document.createElement('select');
        selectProduct.id = 'r'+i;
        divProducthere.appendChild(selectProduct);

}

这对我不起作用,因为我只需要逐个创建带有click事件的元素,但是为每个创建的元素分配唯一的id

2 个答案:

答案 0 :(得分:1)

将计数器放在全局变量中。

var select_counter = 0;
function prodElement() {
    select_counter++;
    var selectProduct = document.createElement('select');
    selectProduct.id = 'r'+select_counter;
    divProducthere.appendChild(selectProduct);
}

答案 1 :(得分:0)

您可以创建一个这样的唯一ID:

&#13;
&#13;
function uniqId(length = 6) {
  return (Math.random().toString(36) + Math.random().toString(36)).substr(2, length);
}

for (let i = 0; i < 10; i++) {
  console.log(uniqId(parseInt(Math.max(2, Math.random() * 10))))
}
&#13;
&#13;
&#13;