如何使我的AJAX网址依赖于jquery条件?

时间:2017-09-01 15:58:42

标签: jquery ajax global-variables

如果正文中存在类Easy的div,我希望AJAX运行网址urlEasy.php如果正文中存在类Medium的div,我希望它运行urlMedium.php

尝试使用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>

当我直接编写所需的URL时,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 个答案:

答案 0 :(得分: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>