1

AJAXリクエストからエラーが返されるかどうかを確認する方法を見つけようとしています。リクエストをテストするために常に返されます<p id="error">test</p>

私はあなたがこのようにそれをすることができると思いました:

//html is the var which contains the result
var DOM = $(html);
if( $('#error', DOM ).length != 0 ) {
    alert(html);    
}

しかし、これは機能しません。誰かが何がうまくいかないかに光を当てることができますか?

4

4 に答える 4

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);    
}
于 2011-01-07T09:49:30.953 に答える
1

DOMに挿入されていないため、セレクターで検索することはできません。

変数のtest()関数で単純な正規表現を使用してみることができます。

if (html.test(/id="error"/i)) {
   ...
}
于 2011-01-07T09:40:20.950 に答える
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。

于 2011-01-07T09:45:55.660 に答える
0

検索機能を使用できます。

if ( $(html).find("#error").length != 0 )
{
    alert(html);    
}
于 2011-01-07T09:46:26.753 に答える