我刚刚开始制作原型,之前我正在使用jquery。
我在互联网上找不到关于如何做的简单例子:
$('mydiv').hide()
)答案 0 :(得分:7)
如上所述,您不应该在页面上拥有相同的ID。除了违反标准之外,它还是一个潜在问题的处方,因为你不知道你的JavaScript会如何反应。而是使用类。
选择具有相同元素的所有元素 页面上的
id类(我正在这样做但是它 仅适用于第一个元素: $('mydiv')。hide())
使用$$
:
$$('.myclass')
选择包含的div 他们身份的另一个div。
使用$$
:
$$('div#outer div#inner')
隐藏所有拥有myClass的元素 类。
使用$$
,each()
和hide()
$$('.myClass').each(function(d) {
d.hide();
});
$$
是你的朋友。
答案 1 :(得分:1)
我要添加的一些内容。
$$('.myClass').each(function(d) {
d.hide();
});
可以替换为:
$$('.myClass').invoke("hide");
此外,请谨慎使用$$
,在具有较大dom的网页中,使用$
定位父元素通常会更快,然后使用select()
作为选择器
所以
$$('div#outer div#inner') etc....
可以像这样重写:
$('parent_of_inner_and_outer').select('div#outer div#inner') etc....
答案 2 :(得分:0)
这不是特别漂亮,但如果你遇到像我最近那样的情况,那里可能有多个项目在页面上具有相同的id,你没有能力改变它,那么这样会起作用。就我而言,我至少知道他们都是跨度标签。
var spans = $$('span');
for (i = 0; i < spans.length; i++) {
var span = spans[i];
if (span.id == 'add_bookmark_image_' + id) {
span.hide();
}
if (span.id == 'is_bookmarked_image_' + id) {
span.show();
}
}