javascript - $.ajax if 条件

标签 javascript jquery

我未能使用以下语法在 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
});
}

第二种方法不太理想,因为它会重复我的代码。 我的第一个脚本语法错误吗?有人可以指出吗?谢谢

最佳答案

is my first script in a wrong syntax?

是的,绝对是。您只是在对象文字的中间插入 if-else-statement 部分。你应该使用这样的东西:

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);

或者如果你想内联它们,你可以使用 ternary operator :

$.ajax({
    type: "POST",
    url: (num == 1) ? url1 : url2,
    data: (num == 1) ? data1 : data2,
    success: success,
    dataType: dataType
});

(如果你不想重复条件,将其 bool 结果存储在一个变量中)

关于javascript - $.ajax if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14762775/

相关文章:

javascript - JQuery - 如何检查一个跨度是否有一个类,如果不存在则添加一个类

javascript - 如果表单为空,则阻止提交表单

javascript - 在主干网和 Rails 之间共享过滤、排序和验证逻辑

javascript - 基于多个搜索输入过滤 ngrepeat

php - 将 jQuery setInterval 计时转换为递归 setTimeout 计时

javascript - 如何从后台关闭弹出窗口?

JQuery:查找和替换属性值

javascript - div高度达到固定高度如何添加类?

php - 使用php和jquery从mysql中删除数据

javascript - 在 javascript 中单击时更改 div 高度?