最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

html lists - Javascript to create an li and append to an ol - Stack Overflow

programmeradmin5浏览0评论

I'm trying to use JavaScript to create an li and append it to an existing ol. The code I am using is

<ol id=summaryOL>
</ol>

function change(txt) {
var x=document.getElementById("summaryOL");
newLI = document.createElementNS(null,"li");
newText = document.createTextNode(txt);
newLI.appendChild(newText);
x.appendChild(newLI);
}

change("this is the first change");
change("this is the second change");

These should look like:

1. this is ...
2. this is ...

But look like:

this is the first changethis is the second change

I have created a fiddle at: fiddle . Thanks for any help.

I'm trying to use JavaScript to create an li and append it to an existing ol. The code I am using is

<ol id=summaryOL>
</ol>

function change(txt) {
var x=document.getElementById("summaryOL");
newLI = document.createElementNS(null,"li");
newText = document.createTextNode(txt);
newLI.appendChild(newText);
x.appendChild(newLI);
}

change("this is the first change");
change("this is the second change");

These should look like:

1. this is ...
2. this is ...

But look like:

this is the first changethis is the second change

I have created a fiddle at: fiddle . Thanks for any help.

Share Improve this question asked Feb 2, 2012 at 5:23 Andrew ClearAndrew Clear 8,0205 gold badges29 silver badges35 bronze badges
Add a ment  | 

5 Answers 5

Reset to default 5

Just looking and this and can't believe it hasn't been answered without jQuery, so just putting it here. In Vanilla JS, you can do:

const ol = document.querySelector("#summaryOL");
const li = document.createElement('li');
const text = document.createTextNode(txt);
li.appendChild(text);
ol.appendChild(li);

or alternatively, by modifying innerHTML of ol node directly:

document.querySelector('#summaryOL').innerHTML =
  changes
    .map(txt => `<li>${txt}</li>`)
    .join('');

Here is an example - jsfiddle

$(function() {
    var change = function( txt ) {
        $("#summaryOL").append( '<li>' + txt + '</li>' );
    };

    change("this is the first change");
    change("this is the second change");
});

To use jquery, put below code inside of <head></head>

<script type="text/javascript" src="http://ajax.googleapis./ajax/libs/jquery/1/jquery.min.js"></script>

Try Below. It worked for me. Remove null from

newLI = document.createElementNS(null,"li");

function change(txt) {

    var x=document.getElementById("summaryOL");
    newLI = document.createElement("li");

    newText = document.createTextNode(txt);
    newLI.appendChild(newText);
    x.appendChild(newLI);
    alert('DONE');

    }

Your fiddle is not relevant to your question...

In your fiddle, it works fine but you should never have an ID that starts with a number.

In your question, createElementNS is pointless - just use createElement('li') instead.

If you are using jQuery, you can try this:

var item= "<li>" + "some info" + "</li>" ;
$("#items").html($("#items").html() + var);

and obviously appending to the list is another solution.

发布评论

评论列表(0)

  1. 暂无评论