Jquery 如何将数组的每个项拆分为新的div
每次我选中一个复选框时,值就会被推送到一个数组中,我想将它附加到一个div中,但每个项都应该在它自己的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(
$(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,你喜欢这个有什么特别的原因吗?我