2012-02-03 4 views
1

responseText를 사용할 때 모든 데이터를 얻습니다. <HTML>에서 </HTML>까지 어떻게 그것의 특정 부분을 추출합니까? 예를 들어,이 코드가 있습니다AJAX의 responseText에서 데이터를 추출하는 방법은 무엇입니까?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Tester</title> 
    </head> 

    <body> 

     <table> 
      <tr> 
       <td><a name="Name"></a>Name</td> 
       <td>John</td> 
      </tr> 
      <tr> 
       <td><a name="Email"></a>Email</td> 
       <td>[email protected]</td> 
      </tr> 
      <tr> 
       <td><a name="Address"></a>Address</td> 
       <td>123 Elm Street</td> 
      </tr> 
      <tr> 
       <td><a name="City"></a>City</td> 
       <td>Los Angeles</td> 
      </tr> 
      <tr> 
       <td><a name="State"></a>State</td> 
       <td>CA</td> 
      </tr> 
     </table> 

    </body> 
</html> 

을 그리고 난 그냥 도시 부분 로스 앤젤레스 같은 추출해야합니다. 이 일을 어떻게 하죠? 나는 responseText.getElementByTagName, 또는 그와 비슷한 것을 할 수 없다. 쉽게

var xmlhttp; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    var pageContents = xmlhttp.responseText; 
    document.getElementById("myDiv").innerText = pageContents; 

    } 
    } 
xmlhttp.open("GET","content.html",false); 
xmlhttp.send(); 
+4

아마 당신도 아약스 전화를 게시해야합니다. 이 사이트의 많은 사람들은 당신이 당신의 일을 어떻게 추측하는지 짐작하지 않습니다. –

+0

아마도 귀하의 질문을 이해하지 못 하겠지만 ... 왜 당신은 수 없는가? 전역 범위 인 호출 페이지에서 변수를 시작하고 ajax 페이지로 값을 설정 한 다음 호출 페이지에서 원하는 스크립트를 실행하도록 Ajax 페이지를 만들 수 있습니다. – phpmeh

+0

이것을 확인하십시오 : http://stackoverflow.com/questions/888875/how-to-parse-html-from-javascript-in-firefox – Malk

답변

1

(안된)

다음은 AJAX 호출입니다 :

var city = responseXML.getElementsByName('City').parentNode.nextElementSibling.childNodes[0].getAttribute('textContent'); 

jQuery와 같은 JavaScript 라이브러리는 avy를 해제하면 코드를 훨씬 쉽게 읽을 수 있습니다 (크로스 브라우저와 마찬가지로).

+0

'getElementsByTagName'는''요소를 가져 오며'City'라는 이름을 가진 요소는 가져 오지 않습니다. . 'getElementsByName'을 원한다. –

+0

정확합니다. 오타를 유감스럽게 생각합니다. 게시물에서 수정되었습니다. – pete

+0

흠, getElementsByName 또는 ID를 xmlhttp.responseText에 추가 할 때마다 IE에서이 속성을 지원하지 않으며 FF는 아무 것도 표시하지 않습니다. – zen

0

jQuery를 이름이 (종류의) : 순수 자바 스크립트 솔루션, 시도에 대한

alert($('table').find('tr').eq(3).find('td').eq(1).html()) ---> 로스 앤젤레스