命名在JavaScript中的函数内下拉

时间:2014-03-18 15:25:06

标签: javascript jsp

我在<table>内有这个内容,我的addFields()函数中的命名似乎不起作用...是否有人知道我需要哪些替代代码行document.getElementById('materials') += "<name='"+iteration2+"'>";

HTML:

<td>
    <p id="addFields">
        <input type="number" required name="productquantity1" min="1" max="1000">
        <select name="productline1" id="materials">
            <option value="123">123</option>
        </select>
    </p>
</td>
<td valign="top">
    <button type="button" onclick="addFields();">+</button>
</td>

JavaScript的:

    var counter = 2;
    function addFields() {
        var iteration2 = "productline" + counter;

        var select = document.getElementById('materials').cloneNode(true);
        document.getElementById('materials') += "<name='"+iteration2+"'>"; //does not work
        document.getElementById('addFields').appendChild(select);
        counter++;
    }

3 个答案:

答案 0 :(得分:0)

也许,你应该这样做:

document.getElementById('materials').innerHTML += "<name='"+iteration2+"'>";

您正在为元素本身添加一个字符串。使用innerHTML来完成它。

答案 1 :(得分:0)

简单地说, select.name = iteration2;

MDN Reference

答案 2 :(得分:0)

使用setAttribute

var counter = 2;
function addFields() {
    var iteration2 = "productline" + counter;

    // clone select tag
    var select = document.getElementById('materials').cloneNode(true);
    // change cloned tag name
    select.setAttribute ('name', iteration2); 
    // add to parent
    document.getElementById('addFields').appendChild(select);

    counter++;
}