4

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

$(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 ...
                 }

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

3 回答 3

17

Array.prototype.indexOf()

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

由于这仍然会获得投票,我将编辑一个更现代的答案。

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

Array.prototype.includes()

result.includes("test")这将返回一个真或假。

Array.prototype.some()

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

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

于 2013-02-06T12:07:19.170 回答
12

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

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

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

if ( result.hasOwnProperty("test") ) {
    //do something
}
于 2013-02-06T12:09:53.677 回答
0

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

对于这个例子,你可以使用 indexOf 如下

于 2013-02-06T12:30:18.747 回答