在附加到DOM之前对Ajax响应进行字符串替换

时间:2012-08-10 15:39:04

标签: javascript jquery ajax

我无法从jQuery ajax请求更新响应。在附加到DOM之前,我需要能够用myPage.aspx替换/myfolder/myPage.aspx。这可能与jQuery,或只是普通的Javascript?

这是“数据”的部分内容。

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

我尝试过将dataType设置为texthtml。使用包含类似[a:href~="myPage.aspx"]的内容。我已尝试使用replaceAll("myPage.aspx", "/myfolder/myPage.aspx,但到目前为止还没有运气。任何想法都将不胜感激。

也许这根本不可能?

编辑:

感谢您的回复,但我已经使用了这行代码,比我想象的更容易,但仍然想知道为什么在将响应转换为jQuery对象后replaceAll()无效。

// Inside of ajax success callback

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

1 个答案:

答案 0 :(得分:0)

假设您的回复包含在名为responseText的变量中,您可以尝试以下操作:

$(responseText).find('a').attr('href', function() {
    return this.href.replace('myPage.aspx', '/myfolder/myPage.aspx');
});

应该从HTML中创建实际元素,找到所有<a>元素,然后将其href属性设置为更新后的值(将myPage.aspx替换为/myfolder/myPage.aspx