我使用原型1.5。你能告诉我,我怎样才能隐藏/显示同名或类的div标签。
Element.hide('indicate')
但是,上面的行仅满足隐藏第一个元素。 “表示”是id。
答案 0 :(得分:3)
正如所指出的,$$
功能是必需的。它返回一个数组,因此您需要invoke隐藏所有项目。
$$('.indicate').invoke('hide');
或者,对于奖励炫耀点,您可以直接将该功能用作对象:
var hideFunc = Element.hide;
$$('.indicate').each(hideFunc);
这种技术的优势意味着您可以轻松地将该功能换成另一种功能,例如a Scriptaculous effect。
hideFunc = Effect.SwitchOff;
答案 1 :(得分:2)
HTML中不支持两个元素的相同ID,因此Javascript中没有处理它的方法。无论你使用什么框架。
答案 2 :(得分:1)
Prototype提供了$$()
函数,您可以使用它来查询任何CSS选择器。
因此,如果您有多个具有单个类的项目,则可以像这样查询它们:
$$('.indicate');
请参阅原型手册:http://www.prototypejs.org/api/utility/dollar-dollar
顺便说一下,既然你正在使用Prototype 1.5,我还可以提一下,它也为你提供了.getElementsByClassName()
功能。但是,现在已经在最近的版本中弃用了它,因为它的功能已经由$$()
覆盖,并且为了避免混淆,因为现代浏览器实现了具有相同名称但语法不同的本机函数。
所以不要使用它,但为了完整起见,这里是手动链接:http://www.prototypejs.org/api/element/getElementsByClassName
答案 3 :(得分:0)
ID必须是唯一的。请改为选择班级。
$$('div.indicate').hide();
或其名称属性
$$('div[name=indicate]').hide();