javascript - 使用 Javascript 添加列表

标签 javascript html arrays

我正在开发一个使用大量 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 作为 tagNametr 作为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/

相关文章:

javascript - 火狐扩展 : observing "user-interaction-inactive" across multiple browser windows

javascript - CSS3 翻译出屏幕

javascript - 你如何在 Angular 中循环遍历不同的行(引导行)?

css - 将四个不同的 div 垂直居中

c++ - 如何在不创建新类的情况下部分填充 C++ 模板模板参数

javascript - 如何在 ES6 中进行对象解构?

javascript - 在javascript中获取getter的调用参数

javascript - 太长时如何显示 td 内容?

c - 将名称从文件复制到 char * 数组的函数

java - 将数组元素添加到 2d ArrayList