我写了一个脚本,我想改变语言。我设法使用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);
}
});
最好的问候,
保罗佩伦
答案 0 :(得分:4)
这种方法是最简单的方法 从服务器获取数据。它是 大致相当于$ .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);