在JavaScript字符串中动态存储多个值
我有一个动态按钮,带有一个“比较btn”类和一个ID,该ID对于按钮所在的每个产品都是唯一的 单击此按钮时,我创建了一个脚本,该脚本获取按钮的ID,并将JS变量设置为该值,如下所示:在JavaScript字符串中动态存储多个值,javascript,jquery,Javascript,Jquery,我有一个动态按钮,带有一个“比较btn”类和一个ID,该ID对于按钮所在的每个产品都是唯一的 单击此按钮时,我创建了一个脚本,该脚本获取按钮的ID,并将JS变量设置为该值,如下所示: $(".compare-btn").click(function() { var contentPanelId = $(this).attr("id"); $.ajax({ method: "POST", ur
$(".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请求会更有意义。您还可以打开各个按钮来切换复选框,因为这似乎更适合它们的用途。