动态创建输入元素时设置输入元素的 ID

Set ID for input elements when creating them dynamically

当用户单击按钮时动态创建输入字段时如何设置输入字段 ID。 我有一个文本字段和一个组合框对,它们将在单击时创建。因此,每次用户单击并创建一对时,我都需要为它们分配唯一的 ID,以便可以将这些值对保存到数组中以供以后检索。

function createattr() {
    var input = document.createElement("input");
    input.type = "text";
    input.placeholder="Attribute name";
    input.className = "attr-textfield-style";
    inputval.appendChild(input);

    //Display the drop down menu

    var newDiv=document.createElement('div');
    var html = '<select>', attrtypes = typeGenerate(), i;
    for(i = 0; i < attrtypes.length; i++) {
        html += "<option value='"+attrtypes[i]+"'>"+attrtypes[i]+"</option>";
    }
    html += '</select>';
    newDiv.className="attr-combobox-style";
    newDiv.innerHTML= html;
    inputval.appendChild(newDiv);

}

解决了。就是这个简单的 line.Just 想分享这个以供将来参考。

input.id="attr"+attrID;

将 attrID 声明为在函数结束前递增的全局变量,以便为每个输入字段分配一个唯一 ID

我刚刚将 'attr' 字符串添加到一个 ID,以便与该文本字段一起选择的组合框将具有相同的数字(即一对 -> 文本字段 id- attr3,组合框 - type3。下一对将有 -> 文本字段 id- attr4,combobox- type4)

如果元素永远不会被删除,您可以计算现有元素并相应地给出 ID,例如:

var newId = document.getElementsByClassName('attr-combobox-style').length;
input.id = 'attr' + newId;

或者你可以使用时间戳,它绝对是唯一的:

input.id = 'attr' + new Date().getTime();