4

この初心者の質問で最初に申し訳ありませんが、私は最近 JavaScript を学び、現在 Windows 8 アプリの開発を学んでいます。問題のコードは次のとおりです。

        var numbers = [1, 2, 3, 4, 5];
        id('numberList').innerHTML = '<ul>';
        for (var x in numbers) {
            id('numberList').innerHTML += '<li>' + x + '</li>';
        }
        id('numberList').innerHTML = '</ul>';

これは、JS ファイルの "ready" 関数 (Windows 8 開発者向け) にあり、'numbersList' は (HTML ファイルの) 本文のセクション タグを参照します。アプリを実行しているときにリストがまったく表示されません。ただし、リストの代わりにテキストを追加しようとすると、

       id('numberList').innerHTML = 'hello';

テキストは表示されます。HTML要素を挿入しようとしている方法に問題がある可能性はありますか?

4

2 に答える 2

5

と一緒に使用+=しないでくださいinnerHTML。そうしないと、エンジンが不完全な HTML を修正しようとします。

var numbers = [1,2,3,4,5], str;
str = "<ul>";
for( var x in numbers) str += "<li>"+x+"</li>";
str += "</ul>";
id("numberList").innerHTML = str;

そうは言っても、それを行うための「より良い」方法は次のようになります。

var numbers = [1,2,3,4,5], ul = document.createElement('ul');
for( var x in numbers) ul.appendChild(document.createElement('li')).appendChild(document.createTextNode(x));
var nl = id("numberList");
while(nl.firstChild) nl.removeChild(nl.firstChild);
nl.appendChild(ul);
于 2013-04-18T01:39:15.273 に答える