2014-05-13 51 views
1

我有以下脚本,它将CSS类hidden-mobile添加到目标div块sorter-pager就好,但页面有两个div块共享sorter-pager,并且CSS类只能添加到其中一个div块,而不是两个。将CSS类添加到具有相同类选择器的多个DIV中

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

我怎样才能使它让这个CSS类hidden-mobile可以添加到多个DIV块与sorter-pager选择?

回答

1

我不是一个prototypesjs的人,但它似乎很清楚你只访问数组中的第一项与“[0]”,因此该类只适用于第一个“.sorter-pager “元素。

如果原型支持列表理解方法,请使用这些方法。否则,请手动循环数组中的所有“.sorter-pager”项并分别调用“addClassName”。

+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/