Javascript jQuery将每个数组索引附加到div

Javascript 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')

我正在尝试将我创建的数组的值附加到另一个div中,但当我附加数组值时,它将附加数组的所有值,而不仅仅是我添加的值(通过单击),任何建议都将非常好,提前感谢

HTML


  • 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您完全正确。编辑以反映您的评论