如何使Ajax更新器使用原型js更新mydivclass类的所有元素?

时间:2019-03-16 18:10:29

标签: javascript prototypejs

使用Prototype Js Ajax.updater,我想使用特定的CLASS更新每个div,但是当我这样做时,它不适用于类。

元素1 元素2
Channel

即使我这样做

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); 的所有元素

1 个答案:

答案 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);
    });
  }
});