将CSS类添加到具有相同类选择器的多个DIV中

时间:2014-05-13 04:05:45

标签: javascript prototypejs

我有以下脚本将CSS类hidden-mobile添加到目标div块sorter-pager就好了,但页面有两个div块共享sorter-pager而CSS类只添加到一个div块,而不是两者。

if($$('.sorter-pager .pages')[0].empty()) {
    $$('.sorter-pager')[0].addClassName('hidden-mobile');
}

如何使其成为可以使用hidden-mobile选择器将CSS类sorter-pager添加到多个div块?

2 个答案:

答案 0 :(得分:2)

如果你只是像这样检查CSS选择器中的第一个元素

if($$('.sorter-pager .pages')[0].empty()) {

但您想将类名添加到与下一个选择器匹配的所有元素,您可以使用invoke()方法轻松完成

if($$('.sorter-pager .pages')[0].empty()) {
    $$('.sorter-pager').invoke('addClassName','hidden-mobile');
}

invoke()将第一个参数作为要在数组中所有项目上调用的方法名称,并在此之后将可选数量的参数传递给方法调用

http://api.prototypejs.org/language/Enumerable/prototype/invoke/

答案 1 :(得分:1)

我不是原型人,但很明显你只能使用" [0]"来访问数组中的第一项,因此该类只是应用于第一个" .sorter-pager"元件。

如果原型支持列表推导方法,请使用它们。否则,手动循环遍历所有" .sorter-pager"数组中的项目并调用" addClassName"单独