但prototype還有一個更炫的功能:$$('cssSelector'),沒錯,裡面寫的真的是CSS Selector。
我今天遇到的需求是,要去掃頁面裡的所有div,然後過濾出『同一group』的div,最後調整他們的高度。
本來的想法是,為這群div加上類似的id,像是tripAgg
然後我把所有div掃出來後就可以用indexof去抓我要的div,本來的code是這樣:
$$('div').each(function(obj){
if (obj.id.startsWith('tripAgg')) {
if (obj.getDimensions().height > 60) {
obj.style.height = '60px';
}
}
});
本來是用$$('div')掃出所有div,後來改成這樣$$('div.tripAgg'),因為這群div的class都一樣,所以就可以省過加id跟用id過濾那一段:
$$('div.tripAgg').each(function(obj){
if (obj.getDimensions().height > 60) {
obj.style.height = '60px';
}
});
用這種更精確的方法多少可以改進一些效能,因為前者共掃出六十幾個div,裡面只有八個是我要的,後者就精確的掃出八個div。
沒有留言:
張貼留言