2011-01-07 4 views
1

메신저 요청에서 오류가 반환되는지 확인하는 방법을 찾으려고합니다. 요청을 테스트하기 위해 항상jquery - 요소가 변수에 있는지 확인

<p id="error">test</p> 난 당신이 이런 식으로 그것을 할 수 있다고 생각 반환

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

을하지만이 작동하지 않습니다. 뭐가 잘못 됐는지 누가 밝힐 수 있니?

답변

2

다음이 있어야합니다.

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);  
} 
+0

감사합니다! div와의이 워프로 해결됩니다. ++ 1 – Aristos

1

DOM에 삽입되지 않으므로 선택기로 검색 할 수 없습니다.

변수에 test() 함수가있는 간단한 정규 표현식을 사용할 수 있습니다.

if (html.test(/id="error"/i)) { 
    ... 
} 
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.

0

당신은 찾기 기능을 사용할 수 있습니다 :

당신의 HTML이 (A div 같은) 뭔가에 싸여 있지 않은 경우
if ($(html).find("#error").length != 0) 
{ 
    alert(html);  
} 
관련 문제