在javascript中创建ul和li元素。

在javascript中创建ul和li元素。,javascript,Javascript,我正在尝试使用javascript在代码中创建ul和li元素。我有以下建议: var test=document.createElement('section'); test.setAttribute('id','test'); var ul=document.createElement('ul'); document.body.appendChild(test); test.appendChild(ul); for (var i=0; i<array.length; i++){

我正在尝试使用javascript在代码中创建ul和li元素。我有以下建议:

var test=document.createElement('section');
test.setAttribute('id','test');

var ul=document.createElement('ul');


document.body.appendChild(test);
test.appendChild(ul);

for (var i=0; i<array.length; i++){

    var li=document.createElement('li');

    ul.appendChild(li);
    li.innerHTML=li.innerHTML + array[i];

}
CSS

一切正常,除了列表样式的点在我的分区标记之外

它在Chrome和IE中显示如下,但firefox工作正常

 -------------
*| aaa       |
*| bbb       |
*| ccc       |
 -------------

我想把我的点放在我的分区标签里。有人知道吗?非常感谢。

使用
CSS
属性
列表样式位置来定位项目符号:

list-style-position:inside /* or outside */;

这是我的工作代码:

<!DOCTYPE html>
<html>
<head>
<style>
   ul#proList{list-style-position: inside}
   li.item{list-style:none; padding:5px;}
</style>
</head>
<body>
    <div id="renderList"></div>
</body>
<script>
    (function(){
        var ul = document.createElement('ul');
        ul.setAttribute('id','proList');

        productList = ['Electronics Watch','House wear Items','Kids wear','Women Fashion'];

        document.getElementById('renderList').appendChild(ul);
        productList.forEach(renderProductList);

        function renderProductList(element, index, arr) {
            var li = document.createElement('li');
            li.setAttribute('class','item');

            ul.appendChild(li);

            li.innerHTML=li.innerHTML + element;
        }
    })();
</script>
</html>

ul#proList{列表样式位置:内部}
li.item{list style:none;padding:5px;}
(功能(){
var ul=document.createElement('ul');
ul.setAttribute('id','proList');
productList=[‘电子手表’、‘家居用品’、‘童装’、‘女性时尚’];
document.getElementById('renderList').appendChild(ul);
forEach(renderProductList);
函数renderProductList(元素、索引、arr){
var li=document.createElement('li');
setAttribute('class','item');
ul.儿童(li);
li.innerHTML=li.innerHTML+元素;
}
})();

正在使用的JSFIDLE示例

请尝试以下代码片段:

 var list = [];
 var text;

function update() {
    console.log(list);    

    for (var i = 0; i < list.length; i++) {
       console.log( i );
       var letters;
       var ul = document.getElementById("list");
       var li = document.createElement("li");

       li.appendChild(document.createTextNode(list[i]));
       ul.appendChild(li);

       letters += "<li>"  + list[i] + "</li>";
    }

 document.getElementById("list").innerHTML = letters;

}

function myFunction() {
    text = prompt("enter TODO");  
    list.push(text);
    update();
}   
var list=[];
var文本;
函数更新(){
控制台日志(列表);
对于(变量i=0;i”+列表[i]+“”;
}
document.getElementById(“列表”).innerHTML=字母;
}
函数myFunction(){
text=提示(“输入TODO”);
列表。推送(文本);
更新();
}   

那太好了。让我们创建一个简单的函数,它接受一个数组,并在div标记内打印一个有序的listview/list

步骤1:假设您有一个id为“contentSectionID”的div。

步骤2:然后创建javascript函数,该函数返回一个列表组件并接收一个数组:

function createList(spacecrafts){

var listView=document.createElement('ol');

for(var i=0;i<spacecrafts.length;i++)
{
    var listViewItem=document.createElement('li');
    listViewItem.appendChild(document.createTextNode(spacecrafts[i]));
    listView.appendChild(listViewItem);
}

return listView;
}

尝试使用
列表样式位置:内部
?lol它可以工作。就这么简单。我猜Chrome和IE需要它。非常感谢。没有-@Alnitak对我很有效,没错。只需取消选中JSFIDLE上的
规范化CSS
,并意识到这一点(通过删除所有重置样式)。您似乎多次做同样的事情,首先使用dom,最后使用html替换所有内容
 var list = [];
 var text;

function update() {
    console.log(list);    

    for (var i = 0; i < list.length; i++) {
       console.log( i );
       var letters;
       var ul = document.getElementById("list");
       var li = document.createElement("li");

       li.appendChild(document.createTextNode(list[i]));
       ul.appendChild(li);

       letters += "<li>"  + list[i] + "</li>";
    }

 document.getElementById("list").innerHTML = letters;

}

function myFunction() {
    text = prompt("enter TODO");  
    list.push(text);
    update();
}   
function createList(spacecrafts){

var listView=document.createElement('ol');

for(var i=0;i<spacecrafts.length;i++)
{
    var listViewItem=document.createElement('li');
    listViewItem.appendChild(document.createTextNode(spacecrafts[i]));
    listView.appendChild(listViewItem);
}

return listView;
}
document.getElementById("contentSectionID").appendChild(createList(myArr));