JavaScript如何在div中动态生成<p>

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript如何在div中动态生成<p>相关的知识,希望对你有一定的参考价值。

我在div中动态显示一些段落文本 这些段落文本可能是100个也可能是1000个
这就需要我动态生成<P> 请问如何在div中动态生成<P>
还有 为什么我用.appendChild方法把<P>元素添加进div时 报错“类型不匹配”

1、获取div节点

var div = document.getElementById('divid');//获取一个id是divid的div节点,往这个节点中添加p节点

2、动态生成p节点

var p = document.createElement('p');//创建p节点
p.innerhtml = '显示的文字';//p节点显示的文字

3、往div中通过appendChild添加p节点

div.appendChild(p);//往div中添加p节点

参考技术A 可以直接用 document.getElementById("divid").innerHTML = "<p>内容</p>";的方式来写。
多个可以循环进行处理

假设段落文本是个数组:array
可以通过
for (var i = 0; i < array.length;i++)
document.getElementById("divid").innerHTML = "<p>"+array[i]+"</p>";

的方式进行处理本回答被提问者采纳
参考技术B 如果段落过多,直接使用 div.appendChild方法会不段刷新DIV对象,影响运行速度, 正确的方法应该使用 document对象的碎片方法 document.createDocumentFragment 容器,最后再将这些碎片返回给DIV对象比较合理,例如:
var strArrayList=[]; // 创建一个段落文本数组对象,这些段落文本可能是100个也可能是1000个

strArrayList[0]='数据111.......';
strArrayList[1]='数据.......';

strArrayList[2]='数据.......';
strArrayList[3]='数据.......';
strArrayList[4]='数据.......';
//...数据n.....

var div=document.getElementById('div1'); //获得DIV对象
var f=document.createDocumentFragment(); //创建碎片对象
for(var i=0;i<strArrayList.length;i++)
var p=document.createElement('P'); //动态创建P标签
p.appendChild(document.createTextNode(strArrayList[i]));//段落字符串
f.appendChild(p); //附加到碎片对象中

div.appendChild(f);//最后返给DIV对象
参考技术C 我知道楼主是什么原因...

楼主应该这样做.....

var p=document.createElement("p");

然后再用appendChild方法把p 元素添加到 div

如果楼主还是解决不了这个问题的话...

请百度HI我!!帮你解决.....
参考技术D 楼主我是来拿分的... 标准的DOM生成节点、插入.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
pborder:1px solid #000; margin:4px auto; width:100px; text-align:center
</style>
</head>

<body>
<div id="outer"></div>
</body>
</html>
<script type="text/javascript">
function test()
var outer=document.getElementById("outer");
for(var i=0;i<5;i++)
var p=document.createElement("p");
var txt=document.createTextNode("第"+i+"个p");
p.appendChild(txt);
outer.appendChild(p);


test();
</script>

怎么使用javascript动态生成嵌套的div

想实现这个样子
<div class="grid_3">
<div style="border:#e5eaff 1px solid;height:40px">
<div>数据</div>
</div>
</div>
<div class="grid_9">
<div style="border:#e5eaff 1px solid;height:40px">
<div>数据</div>
</div>
</div>
页面里有<span id="repostdiv"></span>标记

想实现---通过链接跳到页面时能够动态加载出div列表
想用javascript写的,代码如下,执行不了
var creatediv3=document.createElement("div");
creatediv3.setAttribute("class","grid_3");

var namediv=document.createElement("div");
namediv.style.border="#e5eaff 1px solid";
namediv.style.height="40px";

var creatediv9=document.createElement("div");
creatediv9.setAttribute("class","grid_9");

var contentdiv=document.createElement("div");
contentdiv.style.border="#e5eaff 1px solid";
contentdiv.style.height="40px";

window.onload=function()
var rediv=document.getElementById("repostdiv");
rediv.appendChild(creatediv3);
rediv.appendChild(creatediv9);
var creatediv3=document.getElementById("creatediv3");
creatediv3.appendChild(namediv);
var creatediv9=document.getElementById("creatediv9");
creatediv9.appendChild(contentdiv);


或者用innerHTML
会添加一个div但是添加的div里面在嵌套一个怎么加?
求大神帮助 或者其他方法请说明 本人新手望详解
再问下怎么在添加的div里加东西 比如加<img>或<a> 谢谢

参考技术A span是行内元素,DIV是块级元素,你这么的是加不进去的。<div id="repostdiv"></div>根元素改成这样

然后就是直接innerHTML进去就行。

var html = [];
html.push('<div class="grid_3">');
html.push('<div style="border:#e5eaff 1px solid;height:40px">');
html.push('<div>数据</div>');
html.push('</div></div>');
html.push('<div class="grid_9"><div style="border:#e5eaff 1px solid;height:40px"><div>数据</div></div></div>'');

document.getElementById('repostdiv').innerHTML = html.join('');

这样就能插进去了。插任何元素都可以这样插的本回答被提问者采纳

以上是关于JavaScript如何在div中动态生成<p>的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用javascript动态生成嵌套的div

在JavaScript中如何循环如何往div中添加数据

从 HTML div 启动 JavaScript 函数,其中函数名称是动态生成的 ASP.NET

javaScript动态生成列表(获取点击列表的id)

javascript动态生成100个div,每逢10就换一行。请问怎么计算div的TOP值,还有这个效果怎么实现。

Java如何做动态表格?