我没有使用以下语法编写AJAX的内部条件。
var num = 1;
$.ajax({
type: "POST",
//condition starts
if (num === 1){
url: url1,
data: data1,
}else{
url: url2,
data: data2,
}
//condition finishes
success: success,
dataType: dataType
});
但这种方式工作。
var num = 1;
if(num === 1){
$.ajax({
type: "POST",
url: url1,
data: data1,
success: success,
dataType: dataType
});
}else{
$.ajax({
type: "POST",
url: url2,
data: data2,
success: success,
dataType: dataType
});
}
第二个方法是不是重复我的代码比较理想。 是我的第一个脚本在一个错误的语法? 可能有人请指出? 谢谢
Answer 1:
是我的第一个脚本在一个错误的语法?
是的,一点没错。 你只是插入的if-else语句中的部分对象文本的中间。 你应该使用这样的:
var params = {
type: "POST",
success: success,
dataType: dataType
};
if (num == 1) {
params.url = url1;
params.data = data1;
} else {
params.url = url2;
params.data = data2;
}
$.ajax(params);
或者,如果你想内联它们,您可以使用三元运算符 :
$.ajax({
type: "POST",
url: (num == 1) ? url1 : url2,
data: (num == 1) ? data1 : data2,
success: success,
dataType: dataType
});
(如果你不想重复的条件下,存储其布尔结果在一个变量)
Answer 2:
你可以做这样的:
var num = 1, url, data;
if (num === 1) {
url = url1;
data = data1;
} else {
url = url2;
data = data2;
}
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
Answer 3:
在东西{括号}是一个对象文字。 你可以声明它,你打电话之前修改$.ajax 。
var options =
{
type: "POST",
url: url2,
data: data2,
success: success,
dataType: dataType
};
if (num === 1) { options.url = url; options.data = data; }
$.ajax(options);
Answer 4:
$.ajax需要常规的JavaScript对象,这样你就可以在分段填充它:
request = {type: "POST", success: success, dataType: dataType};
if(num == 1) {
request.url = url1;
request.data = data1;
} else {
request.url = url2;
request.data = data2;
}
$.ajax(request);
Answer 5:
试试这个方式,如果URL和数据都非常简单。
var num = 1;
$.ajax({
type: "POST",
url : (num==1? url1 : url2),
data: (num==1? data1 : data2),
success: success,
dataType: dataType
});
Answer 6:
部位的条件阿贾克斯语句之前并分配公共变量存在。
Answer 7:
试试这个:
var num = 1;
$.ajax({
type: "POST",
url: (num === 1 ? url1 : url2)
data: (num === 1 ? data1 : data2)
success: success,
dataType: dataType
});
但是,正如其他人提到这将是最好只分配Ajax调用外部变量。
文章来源: $.ajax if condition