javascript - 在 div 上追加子节点

标签 javascript jquery html

我尝试根据数组中的元素将项目添加到 div 元素中。 我尝试添加的元素已存在于页面上。基本上我只是想创建它的新版本并将其添加到 div 中。

代码可能有助于进一步解释事情。

JavaScript:

function apply(list) {
    var item = $("#it_template").children("md-list-item").eq(0);
    for(var i = 0; i < list.uuids.length; i++){
        var uid = list.uuids[i];
        item.children("p").eq(0).html(uid);
        $("#items").append(item);
    }
}

HTML:

<div id="items">
</div>
<div style="display:none" id="it_template">
    <md-list-item md-ink-ripple class="list_item">
        <p></p>
    </md-list-item>
</div>

它似乎在某个地方有问题,因为每当我运行代码时,我只看到一个项目被添加到 div 中。

您能帮我看看错误在哪里吗?

最佳答案

试试这个?重要的变化是克隆节点,而不是尝试一遍又一遍地附加它。 (一个节点只能有一个父节点,因此它只会被移动而不是被复制。)

我所做的另一个更改是使用 .text 而不是 .html。如果您正在处理文本,这通常要好得多。 (重要的是,它降低了 XSS 漏洞的风险。)

function apply(list) {
    var item = $("#it_template").children("md-list-item").eq(0);
    for(var i = 0; i < list.uuids.length; i++) {
        var uid = list.uuids[i];

        var newItem = item.clone();
        newItem.children("p").eq(0).text(uid);
        $("#items").append(newItem);
    }
}

关于javascript - 在 div 上追加子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381867/

相关文章:

javascript - 让 AngularJS 检查器显示 Controller 标题?

javascript - Jquery-在特定时间后自动将滚动条移动到特定位置

javascript - 识别 Jquery 选择器

html - 如何让一个div成为页面的长度

javascript - 基于javascript变量值的iframe src

javascript - 我将如何去使用 window.find() activate on the text only once

javascript - 如何将 Controller 放在外部 html 文件中

css - 响应式布局在 IE 中困惑

javascript - 强制键盘出现

javascript - 使用 AJAX 从 JSP 页面调用 Action 类