jquery - 使用JQuery动态插入和删除HTML标签的正确方法

标签 jquery html css dynamic insert

我不是网络专家,但我需要有关使用 JQuery 的良好实践的帮助。

我的问题: 我有一张很大的 table 。每个元素都有一个按钮将其添加到页面的其他部分,因此我需要提取内容并将其设置到一个新元素中。

我写了this code on JSFiddle ,但我不确定这是解决这个问题的正确方法(但它有效)。

我想到的另一个选项是有一个 id ,其中包含我想要复制的行号并处理文本以通过例如获取值。 $('姓名-'+id).这应该如下所示:

<tr id='row-1'>
    <td id='name-1' class='name'>First</td>
    <td id='lastname-1' class='lastname'>Brand</td>
    <td>
        <button id='btnTest-1' class='btnTest'>Add</button>
    </td>
</tr>

感谢您的意见或建议!

最佳答案

切勿使用增量 idclass 属性。这变成了一场维护噩梦。

您可以使用 closest()find() 而不是链式 parent()children() 分别调用。此外,您还可以对动态添加的按钮使用委托(delegate)事件。试试这个:

$(document).ready(function () {
    $('.btnTest').click(function (e) {
        e.preventDefault();
        var $tr = $(this).closest('tr');
        var name = $tr.find('.name').text();
        var lastname = $tr.find('.lastname').text();
        $('#names').append('<div><span>' + name + ' ' + lastname + '</span><button class="delName">Delete name</button></div>');
    });

    $('#names').on('click', '.delName', function (e) {
        e.preventDefault();
        $(this).closest('div').remove();
    });
});

Example fiddle

关于jquery - 使用JQuery动态插入和删除HTML标签的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593583/

相关文章:

jquery - 如何很好地居中垂直滑动文本

javascript - 使用 JQuery 检测复选框已被单击?

javascript - JS 无法识别隐藏字段中的字符串?

html - 禁用 HTML 中的标记

php - 在传递变量时执行来自 Jquery AJAX 的 cURL 请求

javascript - 在ajax成功时重新绘制Jqplot

javascript - 如何在 flex 容器中的每个元素上覆盖文本+图像?

javascript - Angular 指令 ng-bind-html 在某些情况下不起作用

jQuery - click() 不会在 IE7 中的 div 元素上触发

javascript - 数据更改时滚动不应到达底部