因此,在这里的脚本标记中,我有一个数组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
:之外,还必须将创建的p
的textContent
设置为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>