.get mootools方法在joomla 1.5中不起作用

时间:2011-07-24 17:58:22

标签: mootools joomla1.5

我在joomla 1.5.18中遇到了问题。我正在尝试使用例如

从元素中获取文本
var divContent = $$('#myDiv').get('text');

但每次我收到错误时,在chrome中:未捕获TypeError:对象#<HTMLDivElement>没有方法'get';在firefox中:divContent.get不是一个函数。为什么我收到这个错误?

3 个答案:

答案 0 :(得分:1)

即使是在mootools中的样本,我也会得到相同的结果。

我知道如何为集合中的每个对象执行此操作。我做了$$('。')并使用“each”方法:

$$('p.classname').each(function (el){
      el.addEvent('click', function() {
          var txt = el.get('text');
          ...
      });
});

显然我将功能添加到domready。我不使用jquery'因为mootools&amp; jquery每次都停止事件... -i尝试过一次&amp;我需要的东西不起作用 - 我希望使用所有joomla资源,包括mootools。

检查mootools.js中的版本,它说1.13(?)

答案 1 :(得分:0)

不确定哪个版本的mootools来自joomla 1.5.18,它可能是1.2.5。如果是这样,.get应该可以正常工作,但不会像预期的那样工作。

你可能是一个jquery用户,用于$("#myid")并且发现在mootools中使用#in来获得类似结果的唯一方法是通过document.getElements,aka,$$

问题是,要在mootools中通过id获取单个项目,您实际上是document.id("mydiv")甚至是$("mydiv")$$("#mydiv")实际上会返回一个包含单个成员的元素集合,因此[obj],因此真实元素为$$("#mydiv")[0]

如果将.get方法应用于COLLECTION,则getter通常通过.each遍历所有成员并单独执行get。它将为集合的每个成员返回一个新的数组成员 - 即["innertext"]; - 尽管应该有一个集合的方法,确保元素在那里,它在domready / {{1这是一个独特的ID。

尽管如此,我仍然会使用onload,它应该没问题。根据我的经验,这对于不阅读本手册的jquery用户来说都是非常普遍的假设。由于所有$("mydiv").get("text")次迭代,mootools必须默默地为您处理集合,因此会导致代码性能不佳且性能不佳。只是说。

答案 2 :(得分:0)

你也可以(并且应该)将你的Joomla升级到最新版本(安全修复程序等),我相信它是关于版本1.5.20它们包括一个开箱即用的新版mootools(也有一个mootools升级插件你可以启用)。我认为1.5.20中包含的版本就像1.2.5或者其他......

这可能有所帮助!