2009-04-01 2 views
60

로드 된 Ajax 소스의 HTML 문자열이 있습니다. 문서에 HTML을 넣기 전에이 문자열에서 객체 (이미지)의 일부 속성을 얻고 싶습니다.jquery를 사용하여 html 문자열을 구문 분석합니다.

내가 좋아하는 뭔가있어 :

$.ajax({ 
     url: uri+'?js', 
     success: function(data) { 
      var htmlCode = $(data).html(); 

      $('#otherObject').html(data); 
     } 
    }); 

을 어떻게이 HTML 문자열의 속성 (예를 들어 src)을받을 수 있나요?

답변

106

나는 100 % 확실하지 않다, 그러나

$(data) 

어디서나 연결되지 않은, 그 데이터에 대한 DOM으로 JQuery와 객체를 생성하지 않습니다? 또는 이미 DOM으로 파싱 된 경우 $ ("# myImg", 데이터) 또는 사용자 요구에 맞는 선택기로 이동할 수 있습니다.

편집
는 질문을 다시 읽기는

(그렇지 않으면 당신은보다 정확한 선택을해야합니다, 당신의 DOM에 만 IMG 거기 가정) 당신의 '데이터'이미 당신은 그냥 갈 수있는 의미 DOM이다 나타납니다
$("img", data).attr ("src") 

src 속성에 액세스하려는 경우. 데이터는 단지 텍스트 인 경우, 아마

$("img", $(data)).attr ("src") 
+2

uuh, 답변 해 주셔서 감사합니다. 그것은 솔루션입니다 :) 나는 그것을 보지 못했습니다. 나는 네가 좋은 첫 번째 4 월을 빌기를 바란다. 지금은 수치 스러울 것이다.) – MarvinS

+0

mhm, 나는 내 의견을 회상해야한다. 귀하의 예제 doens't 일을 위해 즉 (버전 7에서 테스트). 나는 "$ (데이터)"- "데이터"- "$ (데이터) .html()"을 사용했다. 어떤 제안? – MarvinS

+0

$ ("img", $ ('

')) FF로 작업했습니다 (IE7이 없음). IMG 태그를 동봉하거나 몸체에 동봉하면 작동하지 않으므로 단일 엔터티로 변환됩니까? $ (data) .attr()을 직접 사용해 보셨습니까? – falstro

2

MarvinS.-을 할 일 것이다

시도 :

$.ajax({ 
     url: uri+'?js', 
     success: function(data) { 
       var imgAttr = $("img", data).attr('src'); 
       var htmlCode = $(data).html(); 
       $('#imgSrc').html(imgAttr); 
       $('#fullHtmlOutput').html(htmlCode); 
     } 
    }); 

이것은 #fullHtmlOutput과에 데이터에서 전체 HTML 블록을로드한다 src 이미지를 #imgSrc에 저장합니다.

1

은 단지

1

한 가지 FF 당신 둘다 요소가 아닌 즉, 테스트 첫 번째는,주의하는 것이 있는지 확인하기 위해 IMG 요소 befor를 컨테이너 요소를 추가 - 오늘 바로이 문제를 가지고 같이 따라에 HTML jQuery는이를 잘 해석 할 수도 있고 해석하지 않을 수도 있습니다. jQuery는 내 HTML을 올바른 DOM으로 구문 분석하지 않습니다. 작은 XML 호환 파일에서 제대로 작동하지만 Ajax 콜백으로 전달할 때 구문 분석하지 않은 HTML은 구문 분석하지 않습니다.

결국 나는 원하는 태그에 대한 문자열을 수동으로 검색했지만 이상적이지는 않지만 작동했습니다.

+0

전체 페이지를 파싱하는 경우 도움이 될 수 있습니다. http://stackoverflow.com/a/1069953/854477 –

관련 문제