1

次の Javascript コードを使用して、DIV に順序付きリストを設定しています。

// send script back in split list
var scriptList = script.split("\n");
var finalScript = "<ol>\n";
var count = 0;
while(scriptList.length >= count) {
    if((scriptList[count]=="") || (scriptList[count] == undefined))  {
        count ++;
        continue;
    }

    finalScript = finalScript + "<li>" + scriptList[count] + "</li>\n";
    count ++;
}
finalScript = finalScript + "</ol>";
scriptingDiv.innerHTML = finalScript;

Firefox では、Firebug を使用して DOM を調べると、これは次のように正しく変換され、順序付きリストが正しく表示されます。

<ol>
<li>This is the first item in the list</li>
<li>This is the second item in the list</li>
</ol>

IE では、次のように </li> タグが <br /> タグであるかのように表示され、他のすべてのタグは無視されます。

これはリストの最初の項目です
これはリストの2番目の項目です

これを機能させるには、順序付きリストを DOM に動的に追加する必要がありますか? .innerHTML を使用して div に html コードを設定するだけではありませんか?

ティア

4

2 に答える 2

2

これを機能させるには、順序付きリストをDOMに動的に追加する必要がありますか?.innerHTMLを使用してdivにhtmlコードを設定するのとは対照的に?

はい

var scriptList = script.split("\n");
var count = 0;
var ol = document.createElement("ol");

    for(var index=0; index<scriptList.length; index++) {
        if(scriptList[index]!="")  {
            var li = document.createElement("li");
            li.innerHTML=scriptList[index];
            ol.appendChild(li);
        }
    }

scriptingDiv.appendChild(ol);
于 2010-06-07T15:06:52.850 に答える
0

代わりにdomメソッドを使用してみませんか?IE:

myOL = document.createElement("ol");
myLI = document.createElement("li");
myTxt = document.createTextNode("My Text!");
myLI.appendChild(myTxt);
myOL.appendChild(myLI);

于 2010-06-07T15:10:08.940 に答える