$.each(x, function(i, field){
if (field.name === "title" || "amount")
{
$( ".added-inquiry" ).find(".row:last-child").find(".column").find( ".added-inquiry-item").append(
'<input type="hidden" name="' + field.name + '" value="' + field.value + '"/>' +
'<span class="' + field.name + '">' + field.value + '</span>' + '<br>'
);
}
答案 0 :(得分:1)
你要么必须重述像
这样的条件if (field.name === "title" || field.name === "amount")
或者您可以使用数组
if (["title","amount"].indexOf(field.name) > -1)
答案 1 :(得分:0)
你不能那样使用||
。
你需要这样做:
if (field.name === "title" || field.name === "amount")
OR两侧的每个语句都是完全独立的,并将自己评估为单个布尔值true
或false
。因此,field.name === "title"
会将自己评估为true
或false
,然后"amount"
会将自己评估为true
或false
。< / p>
我认为任何非空和非零都被视为true
,因此您的OR语句将始终为真,因为"amount"
将始终评估为true
。
你也可以这样做:
if (["title", "amount"].indexOf(field.name) > -1)
如果要测试的值超过2个,这将非常有用。
答案 2 :(得分:0)
您的代码执行如下:
temp = "title" || "amount"; // two "true" values, so "title" is assigned
if (field.name == temp);{ ... };
有效:
temp = "title";
if (field.name == temp) { ... }
要针对多个字符串测试一个变量,您必须直接写出各个测试:
if ((field.name == "title") || (field.name == "amount")) { ... }
如果你需要测试这种东西会变得乏味的许多物品,你可以尝试一个阵列:
if (["title", "amount", ...].indexOf(field.name) > -1) { ... }