使用Prototype Js Ajax.updater,我想使用特定的CLASS更新每个div,但是当我这样做时,它不适用于类。
元素1 元素2Channel
即使我这样做
function mettreajour(span_id, url_traitement, nos_parametres)
{
var ajax = new Ajax.Updater ({success:span_id}, url_traitement, {method:'post', parameters: nos_parametres, evalScripts: true} );
}
它不起作用。
如何使ajax更新程序更新类mettreajour('.mydivclass', 'index.php', &ok=yes);
的所有元素
答案 0 :(得分:0)
关于此的文档非常清楚:
http://api.prototypejs.org/ajax/Ajax/Updater/
Ajax.Updater
将发出一个请求,并用该请求的结果将您标识的任何元素的innerHTML
替换为其ID。换句话说,这是一招的小马。
如果要构建自己的方法来执行此操作,则有两件事要做。首先,使用不太专业的Ajax.Request
来获取数据,然后使用“ double-dollar” $$()
方法查找要更新的元素。 $$()
始终返回元素数组(如果页面上没有与选择器匹配的元素,则返回空数组)。您可以使用Enumerable方法each()遍历该数组,也可以使用特殊情况invoke()
(原型1.7及更高版本)为Enumerable中的每个元素调用相同的方法。
new Ajax.Request('/your/url', {
onSuccess: function(response) {
$$('.some-class').invoke('update', response.responseText);
}
});
或
new Ajax.Request('/your/url', {
onSuccess: function(response) {
$$('.some-class').each(function(elm){
elm.update(response.responseText);
});
}
});