У меня есть метод, который пытается взять список. Этот список может содержать данные и другие списки. Конечной целью является попытка конвертировать что-то вроде этого
["a", "b", ["c", "d"]]
в
<ol>
<li>
<b>a</b>
</li>
<li>
<b>b</b>
</li>
<ol>
<li>
<b>c</b>
</li>
<li>
<b>d</b>
</li>
</ol>
</ol>
Код:
function $(tagName) {
return document.createElement(tagName);
}
//returns an html element representing data
//data should be an array or some sort of value
function tagMaker(data) {
tag = null;
if(data instanceof Array) {
//data is an array, represent using <ol>
tag = $("ol");
for(i=0; i<data.length; i++) {
//construct one <li> for each item in the array
listItem = $("li");
//get the html element representing this particular item in the array
child = tagMaker(data[i]);
//<li>*html for child*</li>
listItem.appendChild(child);
//add this item to the list
tag.appendChild(listItem);
}
} else {
//data is not an array, represent using <b>data</b>
tag = $("b");
tag.innerHTML = data.toString();
}
return tag;
}
Вызов tagMaker вызывает HIERARCHY_REQUEST_ERR: DOM Exception 3, вместо того, чтобы генерировать полезный объект HTML-элемента, который я планировал добавить к document.body.