使用jQuery来改变AJAX响应

yoo*_*er8 6 ajax jquery

当AJAX调用返回html时,是否可以使用jQuery来改变响应字符串的内容?如果是这样,那怎么办呢?

编辑:

此问题针对在将响应写入页面之前编辑响应

zat*_*ata 11

那取决于您如何请求数据.如果你有$ .ajax等,那么你可以在成功处理程序中进行必要的修改.我假设因为你不太了解jQuery,你使用$ .load()来加载数据,在这种情况下最简单的替换它

$.get('/somecode.php', function(data) {
    data = $(data);

    // Find and remove all anchor tags for example
    data.find('a').remove();
    $('#target-id').append(data);
});
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想创建jQuery对象,您可以轻松地执行类似的操作

$.get('/somecode.php', function(data) {
    // Replace all strings "foo" with "bar" for example
    data = data.replace('foo', 'bar');

    // Manually append it to DOM or do whatever you want with it
    $('#target-id').append(data);
});
Run Code Online (Sandbox Code Playgroud)

  • @maxedison只是说字符串操作比DOM操作更快是错误的.在某些情况下,是的,纯字符串解决方案更快(只是汇总一大堆HTML字符串,然后附加它们),但在大多数情况下,使用DOM遍历,更改属性,使用DOM元素有条件地修改css等等.尝试运行正则表达式来完成它,你会看到速度差异.并且使用了具有多兆字节纯HTML结构的HTML页面(电子书),我可以向您保证,使用DOM元素不会耗尽内存. (2认同)