我正在开发一个使用大量 ul
(无序列表)元素的新项目,其中一些列表共享相同的值,所以我想制作一个 Javascript 函数来自动化该过程通过为函数传递一个 array
并返回页面的 HTML。像这样:
<h1>Test Page</h1>
List fruits:
<script type="text/javascript" charset="utf-8">
var fruits = ["Banana", "Apple", "Pear", "Strawberry", "Lemon"];
do_list(fruits);
</script>
应该生成:
<h1>Test Page</h1>
List fruits:
<ul>
<li>Banana</li>
<li>Apple</li>
<li>Pear</li>
<li>Strawberry</li>
<li>Lemon</li>
</ul>
这是怎么做到的?
最佳答案
给定一个值列表和您要附加的节点,这将为该列表中的每个项目创建 li
标签。
function do_list(arr, ulNode)
{
for(var i = 0; i < arr.length; i++)
{
var node = document.createNode("li");
node.nodeValue = arr[i];
ulNode.appendNodes(node);
}
}
这里有一个更好的版本,它允许您创建任意节点类型——您可以将 td
作为 tagName
和 tr
作为parentNode
它将填充该表行。
function do_list(arr, parentNode, tagName)
{
if(!tagName)tagName="li";
for(var i = 0; i < arr.length; i++)
{
var node = document.createNode(tagName);
node.nodeValue = arr[i];
parentNode.appendNodes(node);
}
}
使用示例:
<h1>Test Page</h1>
List fruits:
<ul id="list">
<li>Banana</li>
<li>Apple</li>
<li>Pear</li>
<li>Strawberry</li>
<li>Lemon</li>
</ul>
<script type="text/javascript">
do_list(["Banana", "Apple", "Pear", "Strawberry", "Lemon"],
document.getElementById("list"))
</script>
关于javascript - 使用 Javascript 添加列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6292522/