-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontent.js
61 lines (56 loc) · 2.37 KB
/
content.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// window (グローバル変数) を global として受け取る [2]
(function(global) {
// 色を付ける設定値を宣言 [6]
var ASSIGN_MAP = [
{
re: /year/,
color: 'red'
},
{
// [7]
re: /([5-9]|1(0|1))\smonths\sago/,
color: 'orange'
}
];
var DEFAULT_COLOR = '#888';
// [3]
$('.files .age').each(function(_, value) {
// [4, 5]
var $value = $(value);
var ageText = $value.text().trim();
// デフォルト値突っ込んどく
var color = DEFAULT_COLOR;
ASSIGN_MAP.some(function(assign) {
if (assign.re.test(ageText)) {
color = assign.color;
return true;
}
});
// [8]
$value.css('color', color);
});
})(window);
// // 1. hoge より良い名前つけましょう。例えば、jQuery のオブジェクトなら $age = $('.age') とかにするのが良いです。あと .age だけだとセレクタとして弱く、変なところに色付くかもしれないです。 '.files .age' とか?
// // 2. ファイル内でいきなり変数宣言してしまうと、グローバル変数になってしまうので全体を無名関数で囲み、クロージャを生成して、即時実行する。(下記コード参照のこと)
// var hoge = $('.age');
//
// // 3. $('.age').each(function(_, value) {}) って書けます
// $.each(hoge, function(_, value){
// console.log(value);
// // 4. ここ、jQuery に食わせる意味ないと思います。それよりは var $value = $(value) として、$value.text() で良いのでは。あと一応 trim して空白除去しましょう。
// var hoge = $(value.outerText);
// // 5. 変数名気になる
// var a = hoge.selector;
// if(a.indexOf("year") !== -1){
// // 6. color に渡す value は、定数にしておいた方がよさそう。なんなら、設定値としてオブジェクトで持ってた方がいいのでは。(下記コード参照のこと)
// $(value).css({'color': 'red'});
// }else if(a.indexOf("months ago") !== -1){
// // 7. これ正規表現おかしくないですか
// if(/([5-9|1(0|1)])/.test(a)) {
// $(value).css({'color': 'orange'});
// }
// }else{
// // 8. 設定値が一つの場合は .css('color', '#888') で良いかと
// $(value).css({'color': '#888'});
// }
// });