如何在AJAX的文本响应中查找和替换div

时间:2010-09-24 13:11:29

标签: javascript jquery

我如何能够在HTML中找到并替换以变量中的文本形式保存的div(或其他标签)?我从HTML获取HTML作为文本响应:

$.ajax({
    url: 'page.pgp',
    success: function(result) {
    // here I want to find certain HTML tag
        // in result variable and replace it with something else
    }
});

3 个答案:

答案 0 :(得分:4)

您可以将HTML响应转换为存储在jQuery对象中的DOM元素,方法是将其包装为$()。然后只需use .find()找到您要查找的内容,然后use .replaceWith()将其删除并替换为新内容。

此示例将替换找到的所有 <div>元素。您可能需要使选择器更具体。

$.ajax({
    url: 'page.pgp',
    success: function(result) {
        var $result = $(result);
        $result.find( 'div' ).replaceWith('<span>something else</span>');
        $result.appendTo('body');
    }
});

请注意,如果您要查找的<div>位于元素的顶层,则需要use .filter()代替。

插入结果的uses .appendTo()示例。

答案 1 :(得分:0)

在jQuery中包装响应并像往常一样遍历它:

$.ajax({
    url: 'page.pgp',
    success: function(result) {
        result = $(result).find('.your-selector').replaceWith('<div></div>').end().html();
    }
});

请注意,之后您无需使用.html()

答案 2 :(得分:0)

如果您的响应返回了有效的HTML结构,那么您应该能够将其放入jQuery工厂函数$(result)。

$(result).find('div') // do something