Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery包装元素,但仅包装一次_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何使用jquery包装元素,但仅包装一次

Javascript 如何使用jquery包装元素,但仅包装一次,javascript,jquery,html,css,Javascript,Jquery,Html,Css,然后在断点之后 <div class="item"> <div class="product"></div> <div class="product"></div> <div class="product"></div> <div class="product"></div> </div> 当我启动setCarouselSlides()时,如何强制它只添加

然后在断点之后

<div class="item">
  <div class="product"></div>
  <div class="product"></div>
  <div class="product"></div>
  <div class="product"></div>
</div>


当我启动
setCarouselSlides()时,如何强制它只添加一次
.item
包装函数?

检查父元素中是否存在
css类:

<div class="item">
  <div class="item">
    <div class="product"></div>
    <div class="product"></div>
    <div class="product"></div>
  </div>
</div>
if(!carouselitems.last().parent().hasClass(“项”)){
旋转木马。切片(i,i+计数)。wrapAll(“”);
}
小提琴。

您可以调用展开

if ( ! carouselitems.last().parent().hasClass("item") ) {
    carouselitems.slice(i, i+count).wrapAll("<div class='item'></div>");
}
函数设置转盘滑动(计数){
$(“#畅销书.carousel-inner.item.product”).unwrap()
var carouselitems=$(“#畅销书.carousel-inner.product”).unwrap();
对于(变量i=0;i
这不起作用,因为如果已经有一个类为
.item
的父级,它就什么都不做,但我需要它从4个元素移动到3个元素来包装,例如。是否需要将
产品的
div划分为3个元素的组,并用
item
div包装每个组?是,这正是我所需要的,但它也必须是动态的,以便在遇到断点时不会将整个.item包装到另一个.itemCode中。我不知道你说的“断点”是什么意思——当然没有调试器断点。您的意思是,在处理任意数量的旋转木马元素或三重块后,包装可能会中断吗?所谓断点,我指的是当
$(窗口)
宽度达到给定点时,调用函数以减少包装的产品数量的点。也就是说,如果宽度<760,
count=2如果宽度<950
count=4
并且如果宽度<950&&width>760
count=3
为什么不使用旋转木马呢?jQuery使用.each方法提供了对对象的简单迭代@雅各布:你能举个例子说明在我的情况下是如何做到这一点的吗?这是我用的一把小提琴。每种方法都能满足你的要求。希望这能有所帮助。让我知道。:)for循环肯定是更好的方法。用.each方法解决这个问题不值得费事或额外的代码。我已经更新了小提琴以使用for循环。但是它只包装了2个元素,尽管您已经声明在第二次启动函数时它应该包装3个元素
if ( ! carouselitems.last().parent().hasClass("item") ) {
    carouselitems.slice(i, i+count).wrapAll("<div class='item'></div>");
}
function setCarouselSlides(count){
    $("#bestselling .carousel-inner .item .product").unwrap()
    var carouselitems = $("#bestselling .carousel-inner .product").unwrap();
    for (var i = 0; i < carouselitems.length; i += count) {
        carouselitems.slice(i, i + count).wrapAll("<div class='item'></div>");
    }
    $('#bestselling .carousel-inner .item').first().addClass('active');
}