Javascript jQuery将每个数组索引附加到div
我正在尝试将我创建的数组的值附加到另一个div中,但当我附加数组值时,它将附加数组的所有值,而不仅仅是我添加的值(通过单击),任何建议都将非常好,提前感谢 HTMLJavascript jQuery将每个数组索引附加到div,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我正在尝试将我创建的数组的值附加到另一个div中,但当我附加数组值时,它将附加数组的所有值,而不仅仅是我添加的值(通过单击),任何建议都将非常好,提前感谢 HTML Lorem 1添加 Lorem 2添加 jQuery $(document).ready(function(){ var array = Array(); $(".target").click(function() { array.push($(this).siblings('p')
- Lorem 1添加
- Lorem 2添加
jQuery
$(document).ready(function(){
var array = Array();
$(".target").click(function() {
array.push($(this).siblings('p').text());
$.each(array, function(index, value) {
$("#cart ul").append("<li>"+value+"</li>");
});
});
});
$(文档).ready(函数(){
var数组=数组();
$(“.target”)。单击(函数(){
array.push($(this.this('p').text());
$.each(数组、函数(索引、值){
$(“#cart ul”)。追加(“”+value+“ ”);
});
});
});
当我单击Add on(添加)时,会显示第一个按钮
洛雷姆1
但是当我在第二个按钮上单击add时,它会显示出来
洛雷姆1
洛雷姆1
Lorem 2因为你在数组的每个元素上循环,所以你得到了所有元素。
尝试不使用$。单击功能中的每一项都会更好 因为在数组的每个元素上循环,所以可以得到所有元素。
尝试不使用$。单击功能中的每一项都会更好 如果希望在单击选择器
$(“.target”)
时只添加一个值,则应执行以下操作
// assuming you want the last value in the array.
var value = array[array.length-1]; // could also do $(this).siblings('p').text()
$("#cart ul").append("<li>"+value+"</li>");
//假设需要数组中的最后一个值。
var value=array[array.length-1];//还可以执行$(this.sibbines('p').text()
$(“#cart ul”)。追加(“”+value+“ ”);
似乎您甚至不需要数组(除非它也被其他函数使用)。如果您只想在单击选择器
$(“.target”)
时添加一个值,您应该执行以下操作
// assuming you want the last value in the array.
var value = array[array.length-1]; // could also do $(this).siblings('p').text()
$("#cart ul").append("<li>"+value+"</li>");
//假设需要数组中的最后一个值。
var value=array[array.length-1];//还可以执行$(this.sibbines('p').text()
$(“#cart ul”)。追加(“”+value+“ ”);
似乎您甚至不需要阵列(除非它也被其他一些函数使用)。
$(函数(){
var数组=[];
$(“.target”)。单击(函数(){
array.push($(this.this('p').text());
$(“#cart ul”).append(“”+array[array.length-1]+” ”);
});
});
$(函数(){
var数组=[];
$(“.target”)。单击(函数(){
array.push($(this.this('p').text());
$(“#cart ul”).append(“”+array[array.length-1]+” ”);
});
});
您正在将项目添加到数组中,如果您想保留已添加项目的列表,这是有意义的,但是在将项目添加到列表中时,您正在数组中循环,这将使它将所有项目添加到已存在的项目中
您只需添加最后一项:
array.push($(this).siblings('p').text());
$("#cart ul").append("<li>" + array[array.length - 1] + "</li>");
array.push($(this.this('p').text());
$(“#cart ul”).append(“”+array[array.length-1]+” ”);
或者,您可以在添加项目之前清除列表:
array.push($(this).siblings('p').text());
$("#cart ul").empty();
$.each(array, function(index, value) {
$("#cart ul").append("<li>" + value + "</li>");
});
array.push($(this.this('p').text());
$(“#cart ul”).empty();
$.each(数组、函数(索引、值){
$(“#cart ul”)。追加(“”+value+“ ”);
});
您正在将项目添加到数组中,如果您想保留已添加项目的列表,这是有意义的,但是在将项目添加到列表中时,您正在数组中循环,这将使它将所有项目添加到已存在的项目中
您只需添加最后一项:
array.push($(this).siblings('p').text());
$("#cart ul").append("<li>" + array[array.length - 1] + "</li>");
array.push($(this.this('p').text());
$(“#cart ul”).append(“”+array[array.length-1]+” ”);
或者,您可以在添加项目之前清除列表:
array.push($(this).siblings('p').text());
$("#cart ul").empty();
$.each(array, function(index, value) {
$("#cart ul").append("<li>" + value + "</li>");
});
array.push($(this.this('p').text());
$(“#cart ul”).empty();
$.each(数组、函数(索引、值){
$(“#cart ul”)。追加(“”+value+“ ”);
});
这是有道理的,但我该如何获得数组的值呢?这是有道理的,但我该如何获得数组的值呢?谢谢@Guffa,这是有道理的,[array.length-1]是我需要的,谢谢你的思考和精心编写的解释!Cheers Hanks@Guffa这很有道理,[array.length-1]是我所需要的,谢谢你的思考和良好的书面解释!干杯确实要重新添加列表中已存在的所有项目吗?如果他每次单击只添加一个项目,这个函数会一次又一次地删除和添加相同的列表子集。我的意思是,不管列表中有多少项目,冗余代码都是冗余的。如果每个元素都需要一个AJAX请求呢?有很多案例可能会让这项手术变得非常昂贵。在本例中没有出现,但为了让其他人使用它作为参考,最好不要效率低下。@Jlange您完全正确。编辑以反映您的评论是否确实要重新添加列表中已存在的所有项目?如果他每次单击只添加一个项目,这个函数会一次又一次地删除和添加相同的列表子集。我的意思是,不管列表中有多少项目,冗余代码都是冗余的。如果每个元素都需要一个AJAX请求呢?有很多案例可能会让这项手术变得非常昂贵。在本例中没有出现,但为了让其他人使用它作为参考,最好不要效率低下。@Jlange您完全正确。编辑以反映您的评论