在元素后插入html代码

时间:2015-01-21 10:48:59

标签: javascript html

我有一个html文档,如下所示:

...html code...
<ul id="my_ul">
...html code...

使用javascript我想在<ul id="my_ul">之后立即在文档中插入html代码:

<li><span>Some text</span><ul>

到目前为止,我有这个,但不是预期的结果。拜托,我做错了什么?

var para1 = document.createElement("li");
var para2 = document.createElement("span");
var node = document.createTextNode("Some text");
para2.appendChild(node);
var para3 = document.createElement("ul");
var element = document.getElementById("my_ul");
element.appendChild(para1);
element.appendChild(para2);
element.appendChild(para3);

6 个答案:

答案 0 :(得分:2)

像这样:

var ul = document.getElementById("my_ul");

var li   = document.createElement("li");
var span = document.createElement("span");
var text = document.createTextNode("Some text");
span.appendChild(text);
li.appendChild(span);
ul.appendChild(li);
<ul id="my_ul">
</ul>

答案 1 :(得分:2)

如果您想要更短的代码而不为每个html元素创建对象,请执行以下操作:

var element = document.getElementById("my_ul");
var html = '<li><span>Some text</span></li>'; 
element.innerHTML = html + element.innerHTML;

答案 2 :(得分:1)

这是你想要做的吗?

演示:Fiddle

var para1 = document.createElement("li");
var para2 = document.createElement("span");
var node = document.createTextNode("Some text");
para2.appendChild(node);
para1.appendChild(para2);
element = document.getElementById("my_ul");
element.appendChild(para1);

答案 3 :(得分:1)

您的代码执行此操作:

element.appendChild(para1);

使列表项成为原始列表的子项

element.appendChild(para2);

使跨度成为原始列表的子项

element.appendChild(para3);

使新列表成为原始列表的子项


您需要将每个元素附加到您想要成为其父元素的元素,而不是将所有内容附加到原始列表。

用适当的变量替换element

答案 4 :(得分:1)

$(document).ready(function(){
 
var para1 = document.createElement("li");
var para2 = document.createElement("span");
var node = document.createTextNode("Some text");
para2.appendChild(node);
   
var element = document.getElementById("my_ul");
element.appendChild(para1);
para1.appendChild(para2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul id="my_ul">
</ul>

答案 5 :(得分:-1)

var ul = document.getElementById("my_ul");
var li = document.createElement("li");
var span = document.createElement("span");
var textNode = document.createTextNode("Some text");
span.appendChild(textNode);
li.appendChild(span);
ul.appendChild(li);