我试图找出如何查看AJAX请求是否返回错误。
用于测试请求始终返回<p id="error">test</p>
我以为你可以这样做:
//html is the var which contains the result
var DOM = $(html);
if( $('#error', DOM ).length != 0 ) {
alert(html);
}
但这不起作用。任何人都可以发现什么是错误的吗?
答案 0 :(得分:2)
如果您的HTML没有包含在某些内容中(例如div
),那么它必须是。
var html = '<div></div><p id="error">ERROR!</p><span>other stuff</span>';
var DOM= $('<div>' + html + '</div>');
if( $('#error', DOM).length != 0 ) {
alert(html);
}
示例:http://jsfiddle.net/jonathon/exqTD/
(我认为wrap
会有所帮助,但事实并非如此。如果有人知道为什么然后指出它。
或者,选择器上下文使用find实现,因此您可以这样做:
if( DOM.find('#error').length != 0 ) {
alert(html);
}
答案 1 :(得分:1)
它没有插入到DOM中,因此您无法使用选择器进行查找。
您可以尝试在变量上使用带有test()函数的简单正则表达式。
if (html.test(/id="error"/i)) {
...
}
答案 2 :(得分:0)
检查这是否有帮助:
$('body').append('<div class="hidden_div">'+html+'</div>');
if($('#error',$('.hidden_div')).size()>0){
alert(html);
}
只需添加css
即可.hidden_div{display:none;}
应该是它,哦,你可以使用.length
或.size()
或者你可以使用:
if(html.indexOf('id="error"')>-1){alert('yes we have an error!');}
干杯
-G。
答案 3 :(得分:0)
您可以使用查找功能:
if ( $(html).find("#error").length != 0 )
{
alert(html);
}