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

Raj*_*mar 4 ajax jquery

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

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

                }
            },
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

Kol*_*lby 14

Array.prototype.indexOf()

if(result.indexOf("test") > -1)
Run Code Online (Sandbox Code Playgroud)

由于这仍然得到了投票,我将在一个更现代的答案编辑.

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

Array.prototype.includes()

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

Array.prototype.some()

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

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

  • @Alnitak我链接了w3因为它有关于这个主题的正确信息.如果没有,我不会.Raju Kumar w3以发布某些主题的不良信息而闻名.使用它们时要小心,如果你不确定,试着找一个第二意见. (4认同)
  • 可能是正确的答案,但你不会得到报价w3schools的upvotes.请尝试引用MDN. (2认同)

nbr*_*oks 11

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

if ( result.indexOf("test") > -1 ) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

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

if ( result.hasOwnProperty("test") ) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)