Javascript帮助动态创建html元素并将元素填充到DOM中



因此,在这里的脚本标记中,我有一个数组myArr,它被打印到html:中的p标记中

<html>
<body>
<h1>Header 1</h1>
<div>
<p id="test"></p>
</div>
</body>
</html> 
<script> 
var myArr = ["abc", 123, "test"];
document.getElementById('test').innerHTML = myArr; 
</script>

所有这些都有效而且很好。因此,我对此有几个问题,因为我对javascript还很陌生。

我知道如何遍历数组并打印出script标记中的每个元素。但是我怎样才能将它显示到html中呢?有没有一种方法可以用数组中的元素作为内容来动态创建p标记?

我能很容易地将stying添加到动态创建的p标签中吗?

这种事情可以用jquery这样的东西来完成吗?还是另一个流行的简单javascript库?不幸的是,我将无法运行一个成熟的javascript框架。我只能经营一个基本的图书馆。

我尝试了一下:

var my_arr = ["test", "abc", 123];
var arr_length = my_arr.length;
for (i = 0; i < arr_length; i++) {
document.createElement("p");
document.getElementById('test').innerHTML = arr_length;
my_arr[i]
}
<h2>My First Web Page</h2>
<p>My first paragraph.</p>
<div id="test">
</div>

您只需要在数组上forEach。在回调中,创建一个p,将其附加到所需的容器中,并将其textContent设置为数组元素。无需框架/库:

const test = document.getElementById('test');
const my_arr = ["test", "abc", 123];
my_arr.forEach((item) => {
test.appendChild(document.createElement('p'))
.textContent = item;
});
<h2>My First Web Page</h2>
<p>My first paragraph.</p>
<div id="test">
</div>

数组方法通常比for循环更可取,但如果您真的想像在原始代码中那样使用for循环,那么除了将p附加到test:之外,还必须将创建的ptextContent设置为my_arr[i]

var my_arr = ["test", "abc", 123];
var arr_length = my_arr.length;
const test = document.getElementById('test');
for (i = 0; i < arr_length; i++) {
const p = document.createElement("p");
p.textContent = my_arr[i];
test.appendChild(p);
}
<h2>My First Web Page</h2>
<p>My first paragraph.</p>
<div id="test">
</div>

最新更新