Ответ 1
Используйте свойство CSS
list-style-position
для размещения маркера:
list-style-position:inside /* or outside */;
Я пытаюсь создать элемент ul и li в своих кодах с помощью javascript. У меня есть следующее:
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];
}
Мой массив анализируется с использованием json_encode из php
array[0]='aaa';
array[1]='bbb';
array[2]='ccc';
CSS
section {
display: block;
width: 200px;
margin: 50px auto;
border: 3px solid red;
}
Все работает отлично, за исключением того, что точка стиля списка находится за пределами моего тега раздела.
Он отображается как в Chrome и IE, но firefox работает нормально.
-------------
*| aaa |
*| bbb |
*| ccc |
-------------
Я хочу, чтобы моя точка внутри моего тега раздела. Любая идея? Большое спасибо.
Используйте свойство CSS
list-style-position
для размещения маркера:
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>
пример работы jsfiddle здесь
Отлично. Позвольте создать простую функцию, которая принимает массив и печатает наш упорядоченный список/список внутри тега div.
Шаг 1: предположим, что у вас есть div с идентификатором contentSectionID. <div 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;
}
Шаг 3. Наконец, мы выбираем наш div и создаем в нем список:
document.getElementById("contentSectionID").appendChild(createList(myArr));
Попробуйте приведенный ниже фрагмент кода:
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();
}