我在joomla 1.5.18中遇到了问题。我正在尝试使用例如
从元素中获取文本var divContent = $$('#myDiv').get('text');
但每次我收到错误时,在chrome中:未捕获TypeError:对象#<HTMLDivElement>
没有方法'get';在firefox中:divContent.get不是一个函数。为什么我收到这个错误?
答案 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或者其他......
这可能有所帮助!