Prototype.js:如何覆盖div,而不是通过ajax更新它的内容?

时间:2013-03-22 14:13:18

标签: javascript prototypejs

当我这样做时

new Ajax.Updater('foo', 'getALifeGuys.php', ...

这将更新

的内容

<div id="foo">

但是我怎么用ajax调用的结果覆盖这个div呢?这背后的主要思想是我们不知道foo-div的父级,而ajax调用的结果也包含<div id="foo">

2 个答案:

答案 0 :(得分:5)

你可以使用insertion option,它也有一个功能:

new Ajax.Updater('foo', 'getALifeGuys.php', {
    insertion: function(el, response) {
        $(el).replace(response);
    }
});

如果您的div#foo是其父元素的唯一子元素,您也可以传递该父元素:

new Ajax.Updater($('foo').parentNode, 'getALifeGuys.php', …);

答案 1 :(得分:2)

在这种情况下,最简单的方法是使用Ajax.Updater包裹的Ajax.Request,而不是使用Ajax.Updater。在成功方法的内部,您可以使用Element.replace将ID为foo的div替换为从您的方法返回的内容。