jquery 在循环内克隆?

发布于 2024-11-15 04:29:22 字数 444 浏览 1 评论 0原文

我有一个关于循环内克隆的问题,实际上有两个问题,我只是想找到解决它的最佳方法,下面是我的代码。

$.each(data.customers,function(key, value){
    $('.customer').find('label').eq(0).text( value.name );
    $('.customer').eq(0).clone().appendTo('#customers');
});

data.customers 是 json 格式,所以我无法对其进行 .length 操作。我的问题是 jquery 总是会在 #customers 末尾附加一个克隆元素。我只需要附加它们是否是 json 集合中的另一个。我能想到的唯一方法是将数组的计数作为 json 返回并检查键是否等于它,这似乎很荒谬。处理循环时克隆元素的最佳方法是什么?

任何人都可以帮忙。

I have a question about cloning within a loop, two problems actually and im just trying to find the best way around it, below is my code.

$.each(data.customers,function(key, value){
    $('.customer').find('label').eq(0).text( value.name );
    $('.customer').eq(0).clone().appendTo('#customers');
});

The data.customers is in json format so I cannot do a .length on it. My problem is the jquery will always append a clone element on the end of #customers regardless. I need to only append if their is another one in the json collection. The only way I can think of doing it is returning the count of the array back as json and checking that the key is equal to it which seems absurd. Whats the best way to clone elements when your dealing with a loop?

Can anyone help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等数载,海棠开 2024-11-22 04:29:22

您可以这样做:

首先,在 HTML 中为客户创建一个特定的“克隆模板”,通过 CSS (.template {display: none;}) 使其不可见。

然后,在你的循环中:

$.each(data.customers, function (key, value) {
    var $newCustomer = $('#customers .customer.template').clone();

    $newCustomer.removeClass("template").find('label:first').text( value.name );
    $('#customers').append( $newCustomer );
});

You could do this:

First, create a specific "cloning template" for customers in your HTML, make that invisible via CSS (.template {display: none;}).

Then, in your loop:

$.each(data.customers, function (key, value) {
    var $newCustomer = $('#customers .customer.template').clone();

    $newCustomer.removeClass("template").find('label:first').text( value.name );
    $('#customers').append( $newCustomer );
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文