2017-09-01 49 views
0

如果分度Easy类是存在于体内,我想AJAX运行网址urlEasy.php如果分度Medium类是存在于体内,我希望它运行urlMedium.php我怎样才能让我的AJAX网址取决于jQuery的条件?

尝试使用jQuery全局变量

<script> 
var UrlReplacer = {}; 
$(document).ready(function() { 
    if ($("div").hasClass("Easy")){  
    UrlReplacer = "urlEasy.php"; 
    } elseif ($("div").hasClass("Medium")){ 
    UrlRreplacer = "urlMedium.php"; 
    } 
}); 
</script> 

<script type='text/javascript'> 
$(document).ready(function() { 
    $('#classadderform').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url : Urlreplacer , 
      type: "POST", 
      data: $(this).serialize(), 
      success: function (data) { 
      }, 
     }); 
    }); 
}); 
</script> 

当我直接写下如下所示的期望网址时,AJAX运行正常,所以问题与表单,AJAX或链接的url不相关。我也很确定地知道,一个类Easy的div存在于身体中。 问题是创建一个全局的JQuery变量,然后我可以使用它来定义URL。

<script type='text/javascript'> 
$(document).ready(function() { 
    $('#classadderform').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url : "urlEasy.php", 
      type: "POST", 
      data: $(this).serialize(), 
      success: function (data) { 
      }, 
     }); 
    }); 
}); 
</script> 

回答

1

把那些在同一个脚本标记,以避免全局和任何范围的问题,然后检查选择长度,看看是否在DOM

<script type='text/javascript'> 
    $(document).ready(function() { 
     var url = $("div.Easy").length > 0 ? "urlEasy" : "urlMedium"; 

     $('#classadderform').on('submit', function(e) { 
      e.preventDefault(); 
      $.ajax({ 
       url : url + '.php', 
       type: "POST", 
       data: $(this).serialize(), 
       success: function (data) { 

       }, 
      }); 
     }); 
    }); 
</script> 
+0

存在只是出于好奇的元素,是有一种方法可以使用全局变量来做到这一点?我从来没有能够获得由if条件定义的JQuery全局变量的工作,这似乎是一个适合的例子,用来学习如何去做 – Snoops

+0

你真的不应该,但只是为了演示,像这样的东西 - > https://jsfiddle.net/zrzykr9g/ – adeneo

+0

非常感谢!为什么你建议不要使用全局变量方法? – Snoops