JS循環(huán)遍歷ul中l(wèi)i的點(diǎn)擊事件給選中l(wèi)i添加css樣式(示例代碼)
推薦閱讀:
vue循環(huán)遍歷選項(xiàng)賦值到對(duì)應(yīng)控件的實(shí)現(xiàn)方法
JavaScript循環(huán)遍歷你會(huì)用哪些之小結(jié)篇
功能:對(duì)于一個(gè)ul中固定的li個(gè)數(shù),當(dāng)點(diǎn)擊其中一個(gè)li時(shí),改變選中l(wèi)i的顏色;同時(shí)改變對(duì)應(yīng)的另一個(gè)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點(diǎn)擊事件,改變選中l(wèi)i的樣式(代碼用jquery寫的):
// 設(shè)置選中的推薦的時(shí)間和紅包數(shù)的背景色和字體顏色
// 推薦的時(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ù)組,分別存放兩個(gè)ul的li;
2、給第一個(gè)ul中的每一個(gè)li定義點(diǎn)擊事件:
$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、定義點(diǎn)擊觸發(fā)事件所實(shí)現(xiàn)的功能函數(shù):給選中的li添加樣式類
selectedTime表示第一個(gè)ul中的某個(gè)li的id,num表示第二個(gè)ul中對(duì)應(yīng)的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)來實(shí)現(xiàn)遍歷上次選中的Li,如果上次選中的li和當(dāng)前選中的li不一樣,就要把上次選中的Li添加的類去掉,然后給當(dāng)前選中的Li添加類樣式。
css部分樣式如下:
.active1{
background: #1FD823;
border: #1FD823;
}
.active2{
color: #1FD823;
}點(diǎn)擊實(shí)現(xiàn)效果如下:


到此這篇關(guān)于js循環(huán)遍歷ul中l(wèi)i的點(diǎn)擊事件,給給選中l(wèi)i添加css的文章就介紹到這了,更多相關(guān)js循環(huán)遍歷li添加css內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript實(shí)現(xiàn)粘貼qq截圖功能(clipboardData)
這篇文章主要介紹了javascript實(shí)現(xiàn)粘貼qq截圖功能,利用clipboardData在網(wǎng)頁中實(shí)現(xiàn)截屏粘貼的功能,感興趣的小伙伴們可以參考一下2016-05-05
input?獲取光標(biāo)位置設(shè)置光標(biāo)位置方案
這篇文章主要為大家介紹了input?獲取光標(biāo)位置設(shè)置光標(biāo)位置方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
微信/支付寶小程序?qū)崿F(xiàn)彈窗動(dòng)畫縮放到某個(gè)位置的示例代碼
本文詳細(xì)介紹了如何使用HTML、CSS和JavaScript實(shí)現(xiàn)動(dòng)畫函數(shù),包括參數(shù)設(shè)置和動(dòng)畫過程中的狀態(tài)管理,文章還涉及了如何獲取DOM元素、設(shè)置動(dòng)畫開始和結(jié)束的回調(diào)函數(shù),感興趣的朋友跟隨小編一起看看吧2024-10-10
document.getElementById的一些細(xì)節(jié)
document.getElementById的一些細(xì)節(jié)...2006-09-09
TypeScript之a(chǎn)ny類型,unknown類型,never類型使用詳解
本文介紹了TypeScript中的三種特殊類型:any、unknown和never,any類型表示沒有任何限制,unknown類型為更安全的any,never類型表示類型為空,它們的使用場(chǎng)景和限制各不相同,但都具有特殊的用途和優(yōu)勢(shì)2026-03-03
javascript實(shí)現(xiàn)rgb顏色轉(zhuǎn)換成16進(jìn)制格式
本文給大家分享的是使用javascript實(shí)現(xiàn)rgb顏色轉(zhuǎn)換成16進(jìn)制格式的方法和示例代碼,有需要的小伙伴可以參考下。2015-07-07

