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

时间:2016-06-15 08:28:50

标签: javascript html input textbox uniqueidentifier

当用户单击按钮时,如何动态创建输入字段ID时如何设置输入字段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);

}

2 个答案:

答案 0 :(得分:1)

解决了它。这是一个简单的路线。只是想分享这个以供将来参考。

input.id="attr"+attrID;

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

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

答案 1 :(得分:0)

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

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

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

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