2011-01-20 3 views
0

현재 AJAX를 사용하여 외부 HTML 페이지를 가져 와서 모든 텍스트 노드에서 함수를 실행하는 다음 JavaScript/jQuery 스크립트가 있습니다.반환 된 AJAX 변수를 수정할 수 없습니다.

$.get('webpage.html', function (html) { 
    $(html).find('*').each(function() { 
     $(this).contents().filter(function() { return this.nodeType === 3 }).each(function() { 
      this.nodeValue = foo(this.nodeValue); 
      console.log(this.nodeValue); 
     }); 
    console.log(html);      
}); 

그러나 기록 된 새로운 텍스트 노드 값을 변경하고 내가 수정의 없음에서 원래 외부 웹 페이지, 시작 내가 그냥 얻을 끝에 HTML을 로그온 할 때, 모두 정확하고 있지만 그것.

내가 뭘 잘못하고 있니? 결과 DOM 트리를 $(html)를 작성하고 조작

DLiKS

답변

2

은 원래의 문자열을 수정할 수 없습니다.

대신에, 당신이 <div>에 HTML을 포장하여

var content = $('<div>' + html + '</div>'); 
//Modify content 
html = content.html(); 

을 쓸 수 있습니다, 난 쉽게 전체 소스를 검색 할 수 있습니다.

나는 내 블로그에 more detailed explanation이라고 썼습니다.

관련 문제