如何检查返回的结果是否包含特定值?
$(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 ...
}
}
},
});
});
});
答案 0 :(得分:14)
if(result.indexOf("test") > -1)
由于这仍然可以获得投票,我将在更现代的答案中进行编辑。
使用es6,我们现在可以使用一些更高级的数组方法。
result.includes("test")
将返回true或false。
如果您的数组包含对象而不是字符串,则可以使用
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,如下所示