###現在の状況、問題
現在配列menu_iconに5つの数字が格納されており、
その数字をwrapクラスの中のiconクラスに順にvalue属性の値として格納する所まではできました。
valueの値が1以上200以下ならicon_bg_redクラスを追加し、
201以上400以下ならicon_bg_blueクラスを追加し、
401以上ならicon_bg_greenクラスを追加するというif文をeach文の中に記述しているのですが、
現在全ての要素にicon_bg_redが追加されている状況です。
おそらくif文はあっていると思うので、each文の所かiconクラスを個別に処理していないのではないかと思います。
###実現したいこと
value属性の値によってiconクラスに要素の背景色を個別に変えるクラスを追加したいです。
jsfiddleにソースコードをアップしています。
https://jsfiddle.net/ululami/gve3mgmb/4/
ご回答宜しくお願い致します。
###該当のソースコード
javascript
1$(function() { 2 menu_icon = []; 3 menu_icon.push(200, 300, 100, 500, 400); 4 5 var num = 1; 6 var name = ''; 7 8//iconクラスのvalue属性に配列の数字を個別に格納 9 $.each(menu_icon, function(i, val) { 10 name = String('.icon' + num); 11 $(name).attr('value', val); 12 num++; 13 }); 14//ここまでは上手く動作しました。 15 16 $('.icon').each(function() { 17 var iconVal = $('.icon').attr('value'); 18 if (iconVal <= 200 && iconVal >= 1) { 19 $('.icon').addClass('icon_bg_red'); 20 } else if (iconVal <= 400 && iconVal >= 201) { 21 $('.icon').addClass('icon_bg_blue'); 22 } else if(iconVal >= 401){ 23 $('.icon').addClass('icon_bg_green'); 24 } 25 }); 26});
html
1<div class="wrap"> 2 <div class="icon icon1">icon1</div> 3 <div class="icon icon2">icon2</div> 4 <div class="icon icon3">icon3</div> 5 <div class="icon icon4">icon4</div> 6 <div class="icon icon5">icon5</div> 7</div>
css
1.icon { 2 width: 50px; 3 height: 50px; 4 border-radius: 25px; 5 border: 2px solid #000; 6 text-align: center; 7 line-height: 48px; 8 margin: 20px; 9 box-sizing: border-box; 10 font-size: 12px; 11} 12 13.icon_bg_red { 14 background: crimson; 15} 16 17.icon_bg_blue { 18 background: steelblue; 19} 20 21.icon_bg_green { 22 background: seagreen; 23}
###補足情報(言語/FW/ツール等のバージョンなど)
jqueryのバージョンは2.2.4です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/13 19:51