Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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字符串中动态存储多个值_Javascript_Jquery - Fatal编程技术网

在JavaScript字符串中动态存储多个值

在JavaScript字符串中动态存储多个值,javascript,jquery,Javascript,Jquery,我有一个动态按钮,带有一个“比较btn”类和一个ID,该ID对于按钮所在的每个产品都是唯一的 单击此按钮时,我创建了一个脚本,该脚本获取按钮的ID,并将JS变量设置为该值,如下所示: $(".compare-btn").click(function() { var contentPanelId = $(this).attr("id"); $.ajax({ method: "POST", ur

我有一个动态按钮,带有一个“比较btn”类和一个ID,该ID对于按钮所在的每个产品都是唯一的

单击此按钮时,我创建了一个脚本,该脚本获取按钮的ID,并将JS变量设置为该值,如下所示:

  $(".compare-btn").click(function() {
    var contentPanelId = $(this).attr("id");

    $.ajax({
      method: "POST",
      url: "compare.php",
      // data: { data1: contentPanelId, data2: value2, data3: value3 }
      data: { data1: contentPanelId }
    })

    .done(function(html) {
      console.log(contentPanelId);
    })

    .fail(function(html) {
      // Fail
    });
  });
})(jQuery);
我想做的是存储三个值而不是一个值。例如,如果单击ID为1、2和3的按钮,则数据对象将包含data1:1、data2:2和data3:3。但是,我不确定如何更改以下代码以使其按所述工作

$(".compare-btn").click(function() {
var contentPanelId = $(this).attr("id");

理想情况下,应该将id存储在数组中。这样,您就可以扩展到任意数量的排序

    var list_id = []
    var limit = 3
    $(".compare-btn").click(function() {
      var contentPanelId = $(this).attr("id");
      if (list_id.length == limit) {
        $.ajax({
          method: "POST",
          url: "compare.php",
          data: { list_id: list_id }
        })
        .done(function(html) {
          console.log(list_id);
          list_id = []  // optional: clear list after compare
        })
        .fail(function(html) {
          // Fail
        });
      } else {
        list_id.push(contentPanelId)
      }
    });

不清楚你的目标是什么。给定以下语句:
数据对象将包含data1:1、data2:2和data3:3
您的意思是要硬编码请求中发送的值吗?日期是如何根据单击的按钮而变化的?@RoryMcCrossan,每个按钮都具有运行单击功能的相同类,但ID属性的值不同。我需要这样做,当您单击三个比较按钮时,data1、data2和data3等于每个“单击”按钮的值。但您一次只能单击一个按钮…?@Rorymcrossan是的,我知道您一次只能单击一个按钮。但是我需要收集单击的三个按钮的值,并将它们存储在对象中:data:{data1:contentPanelId_1,data2:contentPanelId_2,data3:contentPanelId_3}我明白了。在这种情况下,单击每个按钮时给它一个类,例如,
active
。然后选择
.active
元素并检索它们的
id
属性以放置在对象中。现在的问题是,您需要一种方法来取消选择按钮。因此,在单击按钮时只切换
active
类,然后添加一个新的“submit”按钮来发送AJAX请求会更有意义。您还可以打开各个按钮来切换复选框,因为这似乎更适合它们的用途。