Использование innerHTML для добавления упорядоченного списка не удается в IE - PullRequest
1 голос
/ 07 июня 2010

Я использую следующий код 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, если я смотрю в DOM с помощью Firebug, это правильно переводит на следующее и правильно отображаетупорядоченный список.

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

В IE он отображается так, как будто теги отмечает и игнорирует все остальные теги, например:

Это первый элемент в списке
Это второй элемент в списке

Do IНужно динамически добавить упорядоченный список в DOM, чтобы это работало?В отличие от установки HTML-кода в div с использованием .innerHTML?

TIA

Ответы [ 2 ]

2 голосов
/ 07 июня 2010

Нужно ли динамически добавлять упорядоченный список в DOM, чтобы это работало? В отличие от установки HTML-кода в div с использованием .innerHTML?

Да

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);
0 голосов
/ 07 июня 2010

Почему бы не использовать вместо этого методы dom? IE:

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

и т.д.

...