-1

以下のJSでは、フォームの各フィールドに対して「フィールドの追加」を繰り返す必要がないように、関数をネストしようとしています。

ただし - アラート「Trogdor!」前に配置されている場合にのみ表示されます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 に答える