2012-08-10 6 views
0

jQuery ajax 요청의 응답을 업데이트하는 데 문제가 있습니다. DOM에 추가하기 전에 을 /myfolder/myPage.aspx으로 대체 할 수 있어야합니다. jQuery를 사용하여이 작업을 수행 할 수 있습니까?문자열을 DOM에 추가하기 전에 Ajax 응답으로 바꿉니다.

"데이터"의 모양은 다음과 같습니다.

<a id="act_ExportXML" href="javascript:SubmitForm('myPage.aspx?test=Test','_blank','false','',null)"> 

나는 texthtmldataType을 설정하는 등의 작업을 시도했습니다. 같은 포함을 사용하여 [a:href~="myPage.aspx"]. replaceAll("myPage.aspx", "/myfolder/myPage.aspx을 사용해 보았지만 아직까지는 행운이 없습니다. 어떤 아이디어라도 대단히 감사하겠습니다.

아마도 이것이 가능하지 않을 수 있습니까?

편집 : 답변에 대한

감사합니다, 그러나 나는,이 코드 줄에 내가 생각했던 것보다 더 쉽게 작업을하지만, 완전히 대체하기()가에 대한 응답을 변환 한 후 작동하지 않는 이유를 여전히 궁금있어 jQuery 객체. 당신의 응답을 가정

// Inside of ajax success callback 

var html = data.replace(/myPage.aspx/g,"/myfolder/rdPage.aspx"); 
// append code here 
+3

'replaceAll'은 JS가 내장되어 있지 않습니다. 선택기를 DOM에 추가 한 후에 ** a 요소에서 ** 실행할 수 있습니까? 해당 선택기를 실행할 jQuery 객체를 만들 수도 있지만 결과에는 차이가 없습니다. –

답변

0

responseText라는 변수에 포함되어, 당신은 다음 시도 할 수 :

당신의 HTML에서 모든 <a> 요소를 찾을 실제 요소를 만들어야합니다
$(responseText).find('a').attr('href', function() { 
    return this.href.replace('myPage.aspx', '/myfolder/myPage.aspx'); 
}); 

, 다음 설정 자신의 href은 업데이트 된 값 (myPage.aspx/myfolder/myPage.aspx으로 대체)에 대한 속성입니다.

+0

고마워, 나는 성공 콜백 내에서 이것을 시도하고 아무런 차이를 보이지 않았다. responseText 변수가 없지만 "데이터"가 있습니다 (예 : success : function (data) { $ (data) .find ('a'), attr ('href', function() { this.href.replace ('myPage.aspx', '/myfolder/myPage.aspx'); }); – user1590657

+0

안토니, 거기에'돌아 가기 '를 잊지 않았 니? –

+0

@ FabrícioMatté 네, 그랬습니다. 그게 내가 떠나기 직전에 대답을 빨리 쓰고 그 것을 포함하도록 편집 한 것입니다. –

관련 문제