Javascript - 克隆、附加和包装

标签 javascript jquery

我有一些 javascripc 代码:

$(this).parent().siblings().find('.year-dropdown').find('.date, .time, .details').not('.clone').addClass('clone').clone().wrap("<div class='new'></div>").parent().appendTo('#all-events');

它的作用:此代码从特定的 div 中选择“.date、.time、.details”类,克隆它们,然后添加类 .clone,以防止再次克隆。 接下来,此代码将选定的类包装到 ,最后添加到 #all-events 之前。

这段代码运行良好,只有一个问题:

所有类都添加到新的 div 中,类为 .new。

所以看起来像这样

<div class="new">
  <p class="date clone></p>
</div>
<div class="new">
  <p class="time clone></p>
</div>
<div class="new">
  <p class="details clone></p>
</div>

我想要的就是用 new 类关闭一个 div 中的这些类:

<div class="new">
  <p class="date clone></p>
  <p class="time clone></p>
  <p class="details clone></p>
</div>

这可能吗?

感谢您的建议。

PS:当前代码的输出,来自某个答案。 enter image description here

最佳答案

首先将 .new div 附加到 #all-events,然后将克隆的元素附加到附加的 .new div 尝试:

$("<div class='new'></div>").appendTo('#all-events');
     $(this).parent().siblings().find('.year-dropdown').find('.date, .time, .details').not('.clone').addClass('clone').clone().appendTo('.new');

或 sd @billyonecan 建议使用 wrapAll()

$(this).parent().siblings().find('.year-dropdown').find('.date, .time, .details').not('.clone').addClass('clone').clone().wrapAll("<div class='new'></div>").parent().appendTo('#all-events');

分成4人一组

var items = $(this).parent().siblings().find('.year-dropdown').find('.date, .time, .details').not('.clone').addClass('clone').clone();

var final = '<div class="new">';
$(items).each(function(i,v){
   final+=v;
 if (i%4 == 0 ) {
    final+='</div><div class="new">'
 }
});
final+='</div>';
$(final).appendTo('#all-events');

关于Javascript - 克隆、附加和包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33755643/

相关文章:

c# - 如何在 webbrowser 控件中调用 javascript 函数?

javascript - 工具提示中的 jQuery 滚动条仅在调整窗口大小时正确加载,每次激活时都会重新加载内容

javascript - 带有进度条的图像交换增加/减少onclick

javascript - ImageData 字节长度不是 4 * 宽度的倍数

javascript - 如何输入图像网址并获取图像预览

javascript - 在 AppBrowser 中以编程方式更改 selectMenu 选项

javascript - 将整个日历居中到当天

javascript - 无法在Vue中使用$off并在eventbus中传递参数

javascript - 为什么我的 Jquery 事件不会在 focusout() 上触发?

javascript - 厌倦了让动画按顺序排列