使用 jQuery.load() 更新多个区域
Update multiple areas with jQuery.load()
jQuery 允许您更新具有 ID 的页面的单个部分:
$('#myDiv').load('http://my/url/#myDiv');
我需要更新页面的几个部分(围绕表单)。我意识到我可以:
- 我想更新每个区域调用一次加载,但这是非常低效的。
- 重组我做事的方式,所以分离原始表单,
.load(...)
整个页面并重新附加我的旧表单...但这习惯于弄乱焦点状态。
我想我想要的是下载页面(作为 jQuery 对象)然后交叉更新特定部分的好方法。我假设现有的 .load()
代码就是这样工作的。但我该怎么做呢?
一种解决方案是使用 $.get
:
$.get('http://my/url/', function(response) {
var $page = $(response);
$("#myDiv1").replaceWith($page.find("#myDiv1"));
$("#myDiv2").replaceWith($page.find("#myDiv2"));
});
需要注意的一件重要事情是 jQuery 将删除 <html>
、<body>
或 <header>
等元素,因此如果该元素是以下元素之一的直接后代那些,你可以使用 .filter
来找到它。
jQuery 允许您更新具有 ID 的页面的单个部分:
$('#myDiv').load('http://my/url/#myDiv');
我需要更新页面的几个部分(围绕表单)。我意识到我可以:
- 我想更新每个区域调用一次加载,但这是非常低效的。
- 重组我做事的方式,所以分离原始表单,
.load(...)
整个页面并重新附加我的旧表单...但这习惯于弄乱焦点状态。
我想我想要的是下载页面(作为 jQuery 对象)然后交叉更新特定部分的好方法。我假设现有的 .load()
代码就是这样工作的。但我该怎么做呢?
一种解决方案是使用 $.get
:
$.get('http://my/url/', function(response) {
var $page = $(response);
$("#myDiv1").replaceWith($page.find("#myDiv1"));
$("#myDiv2").replaceWith($page.find("#myDiv2"));
});
需要注意的一件重要事情是 jQuery 将删除 <html>
、<body>
或 <header>
等元素,因此如果该元素是以下元素之一的直接后代那些,你可以使用 .filter
来找到它。