JS循環(huán)遍歷ul中l(wèi)i的點擊事件給選中l(wèi)i添加css樣式(示例代碼)
推薦閱讀:
vue循環(huán)遍歷選項賦值到對應控件的實現(xiàn)方法
JavaScript循環(huán)遍歷你會用哪些之小結(jié)篇
功能:對于一個ul中固定的li個數(shù),當點擊其中一個li時,改變選中l(wèi)i的顏色;同時改變對應的另一個ul中l(wèi)i的顏色
頁面初始化的界面:
HTML:
<div > <label>其他推薦:</label> <ul> <li class="other_recommend" id="recommend1">10:21</li> <li class="other_recommend" id="recommend2">10:22</li> <li class="other_recommend" id="recommend3">10:25</li> <li class="other_recommend" id="recommend4">10:28</li> <li class="other_recommend" id="recommend5">10:30</li> </ul> </div> <br /> <div> <label>剩余紅包數(shù):</label> <ul> <li id="num1" class="number">200</li> <li id="num2" class="number">150</li> <li id="num3" class="number">100</li> <li id="num4" class="number">50</li> <li id="num5" class="number">20</li> </ul> </div>
在js中定義“其他事件”里面的li點擊事件,改變選中l(wèi)i的樣式(代碼用jquery寫的):
// 設置選中的推薦的時間和紅包數(shù)的背景色和字體顏色 // 推薦的時間 var $recommend1 = $("#recommend1"), $recommend2 = $("#recommend2"), $recommend3 = $("#recommend3"), $recommend4 = $("#recommend4"), $recommend5 = $("#recommend5"), $num1 = $("#num1"), $num2 = $("#num2"), $num3 = $("#num3"), $num4 = $("#num4"), $num5 = $("#num5"); var times=new Array($recommend1,$recommend2,$recommend3,$recommend4,$recommend5); var nums = new Array($num1,$num2,$num3,$num4,$num5); // 添加Input選中背景色 $recommend1.click(function(){ setSelectedTime($recommend1,$num1); }); $recommend2.click(function(){ setSelectedTime($recommend2,$num2); }); $recommend3.click(function(){ setSelectedTime($recommend3,$num3); }); $recommend4.click(function(){ setSelectedTime($recommend4,$num4); }); $recommend5.click(function(){ setSelectedTime($recommend5,$num5); }); function setSelectedTime(selectedTime,num){ if (selectedTime.hasClass('active1')){ //不處理 }else{ //遍歷數(shù)組把,其他的remove for (var i = 0; i < times.length; i++) { var time = times[i]; if (time.hasClass('active1')) { time.removeClass('active1'); } } for (var i = 0; i < nums.length; i++) { var n = nums[i]; if (n.hasClass('active2')) { n.removeClass('active2'); } } //原來是沒有被選中的狀態(tài) selectedTime.addClass('active1'); num.addClass('active2'); } }
思路如下:
1、 定義times和nums數(shù)組,分別存放兩個ul的li;
2、給第一個ul中的每一個li定義點擊事件:
$recommend1.click(function(){ setSelectedTime($recommend1,$num1); }); $recommend2.click(function(){ setSelectedTime($recommend2,$num2); }); $recommend3.click(function(){ setSelectedTime($recommend3,$num3); }); $recommend4.click(function(){ setSelectedTime($recommend4,$num4); }); $recommend5.click(function(){ setSelectedTime($recommend5,$num5); });
3、定義點擊觸發(fā)事件所實現(xiàn)的功能函數(shù):給選中的li添加樣式類
selectedTime表示第一個ul中的某個li的id,num表示第二個ul中對應的li的id
function setSelectedTime(selectedTime,num){ if (selectedTime.hasClass('active1')){ }else{ //遍歷數(shù)組把,其他的remove for (var i = 0; i < times.length; i++) { var time = times[i]; if (time.hasClass('active1')) { time.removeClass('active1'); } } for (var i = 0; i < nums.length; i++) { var n = nums[i]; if (n.hasClass('active2')) { n.removeClass('active2'); } } //原來是沒有被選中的狀態(tài) selectedTime.addClass('active1'); num.addClass('active2'); } }
setSelectedTime()函數(shù)用來添加選中Li的樣式,其中在函數(shù)里面用到for循環(huán)來實現(xiàn)遍歷上次選中的Li,如果上次選中的li和當前選中的li不一樣,就要把上次選中的Li添加的類去掉,然后給當前選中的Li添加類樣式。
css部分樣式如下:
.active1{ background: #1FD823; border: #1FD823; } .active2{ color: #1FD823; }
點擊實現(xiàn)效果如下:
到此這篇關于js循環(huán)遍歷ul中l(wèi)i的點擊事件,給給選中l(wèi)i添加css的文章就介紹到這了,更多相關js循環(huán)遍歷li添加css內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript 實現(xiàn)文本使用省略號替代(超出固定高度的情況)
這篇文章主要介紹了javascript 實現(xiàn)文本使用省略號替代(超出固定高度的情況)的相關資料,需要的朋友可以參考下2017-02-02詳解解決小程序中webview頁面多層history返回問題
這篇文章主要介紹了詳解解決小程序中webview頁面多層history返回問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08javascript中利用柯里化函數(shù)實現(xiàn)bind方法【推薦】
下面小編就為大家?guī)硪黄猨avascript中利用柯里化函數(shù)實現(xiàn)bind方法【推薦】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧2016-04-04CSS和JS標簽style屬性對照表(方便js開發(fā)的朋友)
CSS和JS標簽style屬性對照表(方便js開發(fā)的朋友),需要的朋友可以收藏下。2010-11-11