在将其添加到html之前编辑ajax数据

时间:2011-08-10 14:42:10

标签: javascript ajax

您可以在将GET ajax请求附加到页面内容之前编辑它的内容吗?

我正在获取新html页面正文的内容,并希望添加一些类:)。

这可能是不可能的,

谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

这绝对不是不可能的。你只需要一种方法来解析它。最简单的方法实际上是将它附加到隐藏容器中的页面,然后执行您需要的任何DOM操作。然后你可以重新定位html或显示它,如果它在正确的位置。

如果您正在使用jQuery,您实际上可以对您获取的html字符串执行任何jQuery操作。但是,在某些旧版浏览器中,这种性能相当差。

答案 1 :(得分:0)

如果您使用的是jQuery,可以尝试以下操作(注意它可能非常耗费资源,具体取决于您加载的页面大小):

$.ajax({
    /*parameters here*/
    success: function(data,textStatus){
        processData(data);
    }
});

function processData(data){
    //this line creates jQuery object that contains DOM model for loaded page
    var page = jQuery(data); 

    page.find('#id-of-element-to-add-some-class').addClass('*your class*');
    page.find('#table').addClass('myTable'); //adds class myTable to all tables in the document
    //placeholder for loaded page content. Could be something like $('#placeholder')
    var target_element = document; 

    $(target_element ).append(page);
}

有关详细信息,请参阅jQuery.ajax

答案 2 :(得分:0)

没有jquery的方法是使用document.createDocumentFragment

ajax({ //Your preferred method
    done: function(response){
        var myDom = document.createDocumentFragment();
        myDom.innerHTML = response.responseText;
        // your manipulations same as you would with "document"
        document.appendChild(myDom);
    }
});

资源: