我希望我在这里遗漏了一些明显的东西,但我已经尝试过去半天将两个变量设置为在Javascript中以某种格式组合我可以将其作为字符串进行,但是我需要以不同的格式
如果我从复选框中选择选项{"GILLS":"7"}
,则可以正常工作,但如果选择了两个选项,query1
应该看起来像[{"GILLS":"1"},{"GILLS":"7"}]
。我不能对变量使用+ =,因为这会引发意外的令牌错误。
var Query1 = '';
var Query3 = '';
if ($('input[name=checkbox2a]:checked').length > 0) {
var Query3 = {"GILLS":"7"};
}
if ($('input[name=checkbox2b]:checked').length > 0) {
var Query3 = {"GILLS":"1"};
}
答案 0 :(得分:1)
尝试
var Query1 = [];
并在您的函数中使用
Query1.push({"GILLS":"1"})
所以改变将如下所示
var Query1 = [];
var Query3 = [];
if ($('input[name=checkbox2a]:checked').length > 0) {
Query3.push({"GILLS":"7"});
}
if ($('input[name=checkbox2b]:checked').length > 0) {
Query3.push({"GILLS":"1"});
}
然后你可以使用join会给你字符串
Query3.join(", ")
答案 1 :(得分:0)
从Query3中创建一个数组,如果你最后还想要一个字符串,请使用.join(“”)。
var Query1 = '';
var Query3 = [];
if ($('input[name=checkbox2a]:checked').length > 0) {
Query3.push({"GILLS":"7"});
}
if ($('input[name=checkbox2b]:checked').length > 0) {
Query3.push({"GILLS":"1"});
}
Query3 = Query3.join(""); // back to string, if you so like
答案 2 :(得分:0)
如果您采用有时变量属于Object({"GILLS": "1" }
)的方法,有时它的类型为List([{"GILLS":"1"},{"GILLS":"7"}]
),那么您自己会感到痛苦。
由于有时需要是一个列表,因此请确保总是一个列表。即使有时它是长度为1的列表。然后当你读取该值时,你永远不需要条件逻辑来处理两种可能的类型。
所以,它总是一个List:
var query3 = [];
...然后很容易操纵:
if(...) {
query3.push( { "GILLS": "7" } );
}
if(...) {
query3.push( { "GILLS": "1" } );
}
答案 3 :(得分:0)
首先,您在不同的范围内声明相同的变量。除非你知道自己在做什么,否则不要这样做。换句话说,当您使用此特定变量时,仅对“空格”中的变量使用var
关键字一次。
javascript的优点/缺点(选择一个;))是没有类型控件。如果您键入var Query3 = '';
然后Query3 = {"GILLS":"7"};
解释器将执行此操作而不会有任何抱怨,除非很有可能,这不是您想要做的;)。在这种情况下,它使变量Query3
为空字符串,然后使其成为对象。
在您的情况下,您希望在结果中包含一组对象。首先声明var Query3=[];
然后使用推送方法(Query3.push({});
)添加元素。