function test()
{
var formHTML ="";
var frmid ="test123";
var options = ["Test1", "Test2", "Test3", "Test4", "Test5"]
formHTML += "<select id='" + frmid + ">";
console.log(options);
for ( i = 0; i < options.length; i++) {
var temp = options[i];
var temp2 = "<option value='" + temp + "'>" + temp + "</option>";
console.log(temp2);
formHTML += temp2;
}
formHTML += "</select>";
console.log(formHTML);
document.getElementById("injected").innerHTML+=formHTML;
}
上記は私のページでselect要素を作成する関数です。この関数を呼び出すと、非常に奇妙な問題が発生します。オプションtest2、test3、test4、test5のみが表示され、1つは表示されません...
console.logを使用してformHTMLを印刷すると、次のように表示されます。
<select id='test123><option value='Test1'>Test1</option>
<option value='Test2'>Test2</option>
<option value='Test3'>Test3</option>
<option value='Test4'>Test4</option>
<option value='Test5'>Test5</option>
</select>
しかし、コードを実行してソースコードを見ると、HTML要素が正しくありません。最初の要素は次のようになります。
<option value='test1'> Test1
クローズオプションタグがありません、
コードのデバッグと変更を試みましたが、この問題により混乱しました。
何か足りないものがありますか?これについてもっと良い方法はありますか?速度の理由から、DOMを操作する前に、すべてを1つの文字列に格納しようとしています。すべての助けに感謝します、ありがとう