无法生成唯一ID并在document.getElementById()中访问它们

时间:2015-04-11 04:04:12

标签: javascript

function printPerson(nop) {
    if (nop == null || nop == 0) {
        document.getElementById("div1").innerHTML = "";
    }
    else {
        for (var i = 0; i < nop; i++) {
            var element = document.createElement("input");
            var label = document.createElement("Label");
            var button1 = document.createElement("input");
            var button2 = document.createElement("input");
            var br = document.createElement("br");
            label.innerHTML = "User Name :";
            // addition text box
            element.setAttribute("type", "text");
            element.setAttribute("name", "addition");
            element.setAttribute("id", "cal");
            // button 1
            button1.setAttribute("type", "button");
            button1.setAttribute("value", "+");
            button1.setAttribute("onclick", "document.getElementById('cal').value += '+' ");
            // button 2
            button2.setAttribute("type", "button");
            button2.setAttribute("value", "=");
            button2.setAttribute("onclick", "document.getElementById('cal').value = eval(document.getElementById('cal').value)");
            var para = document.getElementById("div1");
            para.appendChild(label);
            para.appendChild(element);
            para.appendChild(br);
            para.appendChild(button1);
            para.appendChild(button2);
            para.appendChild(br);
            count++;
        }
    }
}

这里我尝试根据用户输入创建文本框和按钮,但是我无法为每个动态生成的字段提供唯一ID,因此操作只执行一个第一个创建的文本框

1 个答案:

答案 0 :(得分:0)

尝试 -

element.setAttribute("id", "cal" + i);

ids将为cal1cal2等等。并希望您对name属性也这样做。