如何检查ajax响应是否包含特定值

时间:2013-02-06 12:03:54

标签: jquery ajax

如何检查返回的结果是否包含特定值?

$(function () {
    $('form').submit(function (e) {
        e.preventDefault();
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (result) {

               //here i wanna check if the result return contains value "test"
               //i tried the following..
                 if($(result).contains("test")){
                 //do something but this doesn't seem to work ...
                 }

                }
            },
        });
    });
});

3 个答案:

答案 0 :(得分:14)

Array.prototype.indexOf()

if(result.indexOf("test") > -1)

由于这仍然可以获得投票,我将在更现代的答案中进行编辑。

使用es6,我们现在可以使用一些更高级的数组方法。

Array.prototype.includes()

result.includes("test")将返回true或false。

Array.prototype.some()

如果您的数组包含对象而不是字符串,则可以使用

result.some(r => r.name === 'test')如果数组中的对象名称为test,则返回true。

答案 1 :(得分:11)

jQuery对象没有contains方法。如果您希望返回的结果是字符串,则可以检查您的子字符串是否包含在其中:

if ( result.indexOf("test") > -1 ) {
    //do something
}

如果您的结果是JSON,并且您正在检查顶级属性,则可以执行以下操作:

if ( result.hasOwnProperty("test") ) {
    //do something
}

答案 2 :(得分:0)

:contains()是一个选择器。你可以从这里查看http://api.jquery.com/contains-selector/

对于此示例,您可以使用indexOf,如下所示