Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
Jquery 如何将数组的每个项拆分为新的div_Jquery - Fatal编程技术网

Jquery 如何将数组的每个项拆分为新的div

Jquery 如何将数组的每个项拆分为新的div,jquery,Jquery,每次我选中一个复选框时,值就会被推送到一个数组中,我想将它附加到一个div中,但每个项都应该在它自己的div中 $(document).ready(function() { $('input[name="size"]').on('click', function() { var size = $(this).val(); $('.selected-sizes').empty(); var selectedSize = new Array(

每次我选中一个复选框时,值就会被推送到一个数组中,我想将它附加到一个div中,但每个项都应该在它自己的div中

$(document).ready(function() {
    $('input[name="size"]').on('click', function() {
        var size = $(this).val();
        $('.selected-sizes').empty();

        var selectedSize = new Array();
        $('input[name="size"]:checked').each(function() {
            selectedSize(this.value);
            $('.selected-sizes').append('<div class="size-chosen"><span>' + selectedSize + '</span></div>');
        });
    });
});
是否可以将数组中的每个项目放在自己的行上,如:

small
large
medium
若我将append放在每个循环的外部,那个么它会在同一行上显示每个项目,而不是在自己的div中的新行上显示每个项目

当前输出的html:

<div class="selected-sizes">
    <div class="size-chosen"><span>small, large, medium</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>small</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>large</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>medium</span></div>
</div>

小、大、中
所需输出:

<div class="selected-sizes">
    <div class="size-chosen"><span>small, large, medium</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>small</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>large</span></div>
</div>
<div class="selected-sizes">
    <div class="size-chosen"><span>medium</span></div>
</div>

小的
大的
中等的

我认为根据您的代码,当前输出应该是

<div class="selected-sizes">
    <div class="size-chosen"><span>small</span></div>
    <div class="size-chosen"><span>small, large</span></div>
    <div class="size-chosen"><span>small, large, medium</span></div>
</div>

小的
小的,大的
小、大、中
试试这个

$(document).ready(function() {
$('input[name="size"]').on('click', function() {
    var size = $(this).val();
    $('.selected-sizes').empty();

    var selectedSize = new Array();
    $('input[name="size"]:checked').each(function() {
        selectedSize.push(this.value);
        $('.selected-sizes').append('<div class="size-chosen"><span>' + this.value + '</span></div>');
    });
});
});
$(文档).ready(函数(){
$('input[name=“size”]”)。在('click',function()上{
var size=$(this.val();
$('.selected size').empty();
var selectedSize=new Array();
$('input[name=“size”]:checked')。每个(函数(){
selectedSize.push(此值);
$('.selected size').append(''+this.value+'');
});
});
});

此外,要将数据推入数组,您应该使用push方法()。

我认为根据您的代码,当前输出应该是

<div class="selected-sizes">
    <div class="size-chosen"><span>small</span></div>
    <div class="size-chosen"><span>small, large</span></div>
    <div class="size-chosen"><span>small, large, medium</span></div>
</div>

小的
小的,大的
小、大、中
试试这个

$(document).ready(function() {
$('input[name="size"]').on('click', function() {
    var size = $(this).val();
    $('.selected-sizes').empty();

    var selectedSize = new Array();
    $('input[name="size"]:checked').each(function() {
        selectedSize.push(this.value);
        $('.selected-sizes').append('<div class="size-chosen"><span>' + this.value + '</span></div>');
    });
});
});
$(文档).ready(函数(){
$('input[name=“size”]”)。在('click',function()上{
var size=$(this.val();
$('.selected size').empty();
var selectedSize=new Array();
$('input[name=“size”]:checked')。每个(函数(){
selectedSize.push(此值);
$('.selected size').append(''+this.value+'');
});
});
});

此外,要推入数组,您应该使用push方法()。

我将分别添加和删除每个数组,而不是执行each循环

var$container=$('.selected size'),
$inputs=$('input[name=“size”]);
$inputs.on('单击',函数()){
var currentValue=此.value,
currentIndex=$inputs.index(this);//排序时需要它
如果(选中此项){
$container.append(“”+currentValue+“”);//将单击的项附加到容器中
var sorted=$('.size selected').sort(函数(a,b){
var contentA=parseInt($(a).data('index'),10);
var contentB=parseInt($(b).data('index'),10);
返回值(contentAcontentB)?1:0;
});//这将按与输入相同的顺序对div进行排序-不确定是否需要,如果不需要,可以删除
$container.html(已排序);//使用已排序的div更新容器
}否则{
$container.find('.size selected').filter(函数(){
return$(this).text()==currentValue;//过滤未加密值上的div
}).remove();//如果未选中该复选框,则删除该div
}
});

我会分别添加和删除每个循环,而不是执行每个循环

var$container=$('.selected size'),
$inputs=$('input[name=“size”]);
$inputs.on('单击',函数()){
var currentValue=此.value,
currentIndex=$inputs.index(this);//排序时需要它
如果(选中此项){
$container.append(“”+currentValue+“”);//将单击的项附加到容器中
var sorted=$('.size selected').sort(函数(a,b){
var contentA=parseInt($(a).data('index'),10);
var contentB=parseInt($(b).data('index'),10);
返回值(contentAcontentB)?1:0;
});//这将按与输入相同的顺序对div进行排序-不确定是否需要,如果不需要,可以删除
$container.html(已排序);//使用已排序的div更新容器
}否则{
$container.find('.size selected').filter(函数(){
return$(this).text()==currentValue;//过滤未加密值上的div
}).remove();//如果未选中该复选框,则删除该div
}
});



你能包含html内容吗?如果你能给出一个详细的例子和一些html示例,说明你想实现什么,你的问题不是很清楚。与其循环所有已检查的内容,为什么不添加当前已检查的内容?@Pete,因为我在取消选中时无法将其从列表中删除。我还需要将所有值放入表单中提交,因此将这些数据放入数组似乎是个好主意,但也许有更好的方法?我想我已经找到了<代码>selectedSize.push(“”+this.value+“”)
你能包含html内容吗?如果你能给出一个详细的例子,举例说明你想要实现什么,你的问题就不太清楚了。你没有循环所有已检查的内容,为什么不添加当前已检查的内容?@Pete,因为我在取消选中时很难将其从列表中删除。我还需要将所有值放入表单中提交,因此将这些数据放入数组似乎是个好主意,但也许有更好的方法?我想我已经找到了<代码>selectedSize.push(“”+this.value+“”)谢谢Pete,你喜欢这个有什么特别的原因吗?我在表单中有一个隐藏字段,需要在联系人表单中发送详细信息。将这些值放在一个隐藏字段的数组中不是更好吗?为什么不让您的复选框直接在它们自己的数组中发送数据呢?这很有意义。但我只是想了解,与从一开始就将其放入数组相比,这样做是否有额外的好处。演出或者你为什么喜欢这种方法?我想做“最好”的事情,所以试着去理解为什么。不,没关系,让jaspreet保持标记状态-这只是提供了一个替代选项如果你想要的只是一个逗号分隔的列表,那么我会这样做:,可能更接近你的原始Hanks Pete,你喜欢这个有什么特别的原因吗?我