-1

在下面的 JS 中 - 我试图嵌套一个函数,这样我就不必为表单中的每个字段重复“添加字段”。

但是 - 警报“特罗格多!” 仅在之前放置时显示addfield('rcname', 'RC Name');

结果,增量(i 和 n)当然都没有更新。

语法有问题吗?

function addcameragroup() {
    var newcamgroup = document.createElement("div");
    newcamgroup.setAttribute("id", "camera-" + i);
    var camform = document.getElementById('formtable');
    camform.appendChild(newcamgroup);

    function addfield(fieldname, fieldtxt) {
        var newformrow = document.createElement("div");
        newcamgroup.appendChild(newformrow);
        newformrow.setAttribute("class", "formrow");
        var fieldlabel = document.createElement("label");
        newformrow.appendChild(fieldlabel);
        fieldlabel.setAttribute("for", fieldname);
        fieldlabel.innerHTML(fieldtxt);
    }

    addfield('rcname', 'RC Name');
    alert('Trogdor!');
    i++;
    n++;
}
4

1 回答 1

3
fieldlabel.innerHTML(fieldtxt);

应该

fieldlabel.innerHTML = fieldtxt;

innerHTML 不是一个函数,它是一个属性。试图调用它会导致错误并使您的程序停止执行。您应该考虑了解您最喜欢的浏览器的调试和开发工具。

innerHTML 的 MDN 文档:MDN

于 2013-03-27T15:11:24.037 回答