当我做
new Ajax.Updater('foo', 'getALifeGuys.php', ...
这将更新的内容
<div id="foo">.
但是我如何用 ajax 调用的结果覆盖这个 div 呢?这背后的主要思想是我们不知道 foo-div 的父级,并且 ajax 调用的结果也包含<div id="foo">.
当我做
new Ajax.Updater('foo', 'getALifeGuys.php', ...
这将更新的内容
<div id="foo">.
但是我如何用 ajax 调用的结果覆盖这个 div 呢?这背后的主要思想是我们不知道 foo-div 的父级,并且 ajax 调用的结果也包含<div id="foo">.
您可以使用insertionoption,它也有一个函数:
new Ajax.Updater('foo', 'getALifeGuys.php', {
insertion: function(el, response) {
$(el).replace(response);
}
});
如果您div#foo是其父元素的唯一子元素,您也可以只传递该父元素:
new Ajax.Updater($('foo').parentNode, 'getALifeGuys.php', …);
在这种情况下,您最容易做的事情是,而不是使用Ajax.Updater,使用Ajax.Requestwhich Ajax.Updaterwraps。在该方法的成功方法中,您可以使用Element.replace, 将带有 id 的 div 替换为foo从您的方法返回的内容。