我有以下脚本将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块?
答案 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"单独