2010-06-24 5 views
5

내 ajax (jquery) 응답 (html)은 enrite 페이지를 가져 오기 때문에 html 소스 코드 전체를 제공합니다.ajax html 응답의 일부분 읽기

응답은 다소 아래와 같이있다 :

 

<html> 
<head> 
... 
... 
</head> 
<body> 
. 
..... 
. 

....... 

<div id="content"> 
    content i want to extract 
</div> 
............. 
.......... 
............. 

</body> 
</html> 

나는 다음과 같은 도움이 필요 :

1)는 <div id='content'></div> 사이에 단지 무엇이든 읽을 수 있습니까? 그렇다면 어떻게?

2) # 1을 사용할 수 없다면 <div id='content'></div>에서 콘텐츠를 어떻게 추출 할 수 있습니까?

코드는 내가 노력 :

 

    /*Ajax*/ 
    $jq(function(){ 
    alert ("Doc ready"); 
     $jq("#content a.next-page").bind("click", function(e){ 
      alert ("Hey!"); 
      /*Make the call*/ 
      $jq.ajax({ 
       url: "/page/2", 
       type: "get", 
       cache: false, 
       data: "", 
       error: function(){alert ("No data found for your search.");}, 
       success: function(results){ 
        //$searchPanel.find("tbody").empty().append(results); 
        //$searchPanelHolder.css({"display":"block"}); 
        alert (results.find("div[id='content']").html()); 
        e.preventDefault(); 
       } 
      }); 
      e.preventDefault(); 
     }); 
    }); 

이에 어떤 도움이 많이

많은 감사, Racky을 감사

+1

일반용 코멘트; 백엔드 "브리지"를 거치지 않고 html 페이지를 직접 가져 오는 중이므로 페이지가 자신의 도메인에 있다고 가정합니다. 동일한 도메인이 스크립트의 출처입니다. 이 경우 데이터베이스에 직접 두드려서 원하는 데이터를 JSON 또는 XML 형식으로 반환하는 PHP (또는 무엇이든) 스크립트를 개발하는 데 시간을 투자해야합니다. 이렇게하면 해당 페이지의 마크 업을 변경하더라도 JS 스 니펫이 작동합니다. –

+0

다른 사람의 대답을 올바른 것으로 확인해야합니다. – Mark

답변

0

네, 가능하지만, 당신이 필요로하는 먼저 jQuery 객체를 만들 수 있습니다.

변경이 줄이에

alert (results.find("div[id='content']").html()); 

:

alert ($(results).find("div[id='content']").html()); 

또는 더 나은 아직, 이것에 :

alert ($(results).find("#content").html()); 

편집 :

원하는 요소가 body의 직접적인 하위 요소 인 것처럼 보이는 경우 body이 jQuery 객체에서 제외 된 것으로 보이므로 대신 .filter()을 사용해야합니다. 그 내용이 포함 된 것 같습니다.

alert ($(results).filter("#content").html()); 
+0

고마워요. 톤 : 이것도 효과가 있어요! – racky

+0

@racky - 천만에. : o) FYI는'.find()'를 사용하여 jQuery가 그것을 단지'.find()'로 변환하기 때문에'$ ("content", results)보다 빠릅니다. 그래도 눈에 띄는 차이는 없습니다. – user113716

+0

안녕하세요, 또 다른 작은 문제입니다. 이제 친절한 도움을 받아 필요한 데이터를 얻습니다. 내가 지금하고있는 일은 div [$ ("content")의 오래된 내용을 비우는 것입니다.empty()]를 호출하고 새로 검색 한 데이터 [.append (newdata)]를 추가합니다. 그러나이 페이지는 이상하게도 페이지를 빈 페이지로 다시로드합니다! 이것에 관한 어떤 생각? – racky

관련 문제