用jQuery替换页面的一部分

时间:2011-03-16 11:10:39

标签: javascript jquery html

我写了一个脚本,我想改变语言。我设法使用jQuery中的.ajax()函数并获取新的HTML。 之后我想用新的HTML替换旧的HTML。

但是,我不想交换整个HTML,而只是交换它的一部分。 我知道返回的HTML包含<div id="myDivId">...</div>,所以我只想从返回的HTML中获取该div的内容,并用新内容替换当前div的内容。 但是,我似乎无法弄清楚如何从我的新HTML中获取该内容。我怎样才能做到这一点?我尝试使用find,但没有成功。

$.ajax({
    type: "GET",
    url: "ajax.php",
    data: "action=languagepack&subAction=box&newIso="+newIso+"&country="+country,
    success: function(htmlCode){
        var box = $(htmlCode).find('#myDivId').html();

        alert(box);
    }
});

最好的问候,
保罗佩伦

4 个答案:

答案 0 :(得分:4)

尝试jQuery.load()

  

这种方法是最简单的方法   从服务器获取数据。它是   大致相当于$ .get(url,data,   成功)除了它是一种方法   而不是全球功能,它有   隐式回调函数。当一个   检测到成功的反应(即   当textStatus是“成功”或   “notmodified”),. load()设置HTML   匹配元素的内容   返回数据。这意味着最多   使用该方法可以相当   简单:

$('#result').load('ajax/test.html');

加载页面片段

  

与$ .get()不同,.load()方法允许我们指定一个   远程文档的一部分   插入。这是通过a实现的   url参数的特殊语法。   如果有一个或多个空格字符   包含在字符串中的部分   第一个空格后面的字符串   假定是一个jQuery选择器   确定内容   加载。

     

我们可以修改上面的例子,只使用部分文档   获取:

$('#result').load('ajax/test.html #container');

答案 1 :(得分:0)

如果您只需要一个容器中的HTML,那么肯定会推荐load。如果您需要一些额外的自定义处理 - 您确定从服务器提供的#myDivId 内部块,而不是其中一个块吗?在第二种情况下,您需要在filter内部find(或将所有HTML包装到某个div中以确保所有元素都在其中并且不会是顶级元素。)

答案 2 :(得分:0)

通过php拍摄,运行爆炸更改内容,重新创建div,将其替换为您想要的位置。

你也可以用ajax完成所有这些,但是触发php文件

答案 3 :(得分:0)

尝试使用返回的html:

var d = $("<div/>");
$(d).html(msg.d);
var box = $(d).find("#testDiv").html();
alert(box);