JS遍歷ul下的li點(diǎn)擊彈出li的索引的實(shí)現(xiàn)方法
首先我們需要一個(gè)html結(jié)構(gòu)
<div > <ul> <li>a</li> <li>a</li> <li>a</li> <li>a</li> <li>a</li> </ul> </div>
我們遍歷ul 下所有的li 并添加點(diǎn)擊事件,一般我們會(huì)在for循環(huán)里面添加點(diǎn)擊事件,但是結(jié)果和我們所期盼不一樣,那么是為什么呢????
接下來(lái)看看我們的js代碼
var li = document.getElementsByTagName('li');
for(var i = 0;i<li.length;i++){
(function(Index){
li[i].addEventListener('click',function(e){
alert('I am link #'+ Index );
},false);
})(i)
}
我們實(shí)現(xiàn)了?。?!
這樣就是得來(lái)我們想要的效果點(diǎn)擊相應(yīng)的li得來(lái)相應(yīng)的索引。
簡(jiǎn)單說(shuō)一下實(shí)現(xiàn)的過(guò)程吧
(function () { /* code */ } ()); // 推薦使用這個(gè)
(function () { /* code */ })(); // 但是這個(gè)也是可以用的
這是我整理立調(diào)函數(shù)或自執(zhí)行函數(shù);
本質(zhì)上我們是利用閉包的原理實(shí)現(xiàn)彈出的索引,我們立調(diào)函數(shù)傳一個(gè)參數(shù)Index,也就是我們的索引i,在函數(shù)里面實(shí)現(xiàn)了閉包,
Index會(huì)一直保留在作用域塊內(nèi),這樣我們?cè)冱c(diǎn)擊的時(shí)候,會(huì)調(diào)用作用域名內(nèi)保存的索引,從而實(shí)現(xiàn)我們需要的功能;
我們幾個(gè)簡(jiǎn)單的例子
function num(){
var i = 0;
return function(){
console.log(i++);
}
}
var counter = num();
console.log(counter()); // 0 console.log(counter()); // ??
var counter1 = (function(){
var i = 0;
return {
get:function(){
return i;
},
set:function(val){
i = val;
},
increment:function(){
return ++i;
}
}
}());
console.log(counter1);
console.log(counter1.get()); // ?
console.log(counter1.set(3)); // ?
console.log(counter1.increment()); // ?
console.log(counter1.increment()); // ?
console.log(counter1);
console.log(counter1.get()); // 0
console.log(counter1.set(3)); // 3
console.log(counter1.increment()); // 4
console.log(counter1.increment()); // 5
以上所述是小編給大家介紹的JS遍歷ul下的li點(diǎn)擊彈出li的索引,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- js 索引下標(biāo)之li集合綁定點(diǎn)擊事件
- JS數(shù)組操作(數(shù)組增加、刪除、翻轉(zhuǎn)、轉(zhuǎn)字符串、取索引、截取(切片)slice、剪接splice、數(shù)組合并)
- 用javascript為DropDownList控件下拉式選擇添加一個(gè)Item至定義索引位置
- JavaScript遍歷DOM元素的常見(jiàn)方式示例
- JavaScript實(shí)現(xiàn)的DOM樹(shù)遍歷方法詳解【二叉DOM樹(shù)、多叉DOM樹(shù)】
- JS遍歷DOM文檔樹(shù)的方法實(shí)例詳解
- javascript先序遍歷DOM樹(shù)的方法
- JavaScript簡(jiǎn)單遍歷DOM對(duì)象所有屬性的實(shí)現(xiàn)方法
- JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對(duì)應(yīng)的索引功能【案例】
相關(guān)文章
解決layui laydate 時(shí)間控件一閃而過(guò)的問(wèn)題
今天小編就為大家分享一篇解決layui laydate 時(shí)間控件一閃而過(guò)的問(wèn)題,具有好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
學(xué)習(xí)JavaScript設(shè)計(jì)模式(策略模式)
這篇文章主要帶領(lǐng)大家學(xué)習(xí)JavaScript設(shè)計(jì)模式,其中重點(diǎn)介紹策略模式,以年終獎(jiǎng)為實(shí)例對(duì)策略模式進(jìn)行分析,對(duì)策略模式進(jìn)行詳細(xì)剖析,感興趣的小伙伴們可以參考一下2015-11-11
JS實(shí)用的動(dòng)畫(huà)彈出層效果實(shí)例
這篇文章主要介紹了JS實(shí)用的動(dòng)畫(huà)彈出層效果,實(shí)例分析了javascript實(shí)現(xiàn)動(dòng)畫(huà)效果彈出層的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
Bootstrap進(jìn)度條學(xué)習(xí)使用
這篇文章主要為大家詳細(xì)介紹了Bootstrap進(jìn)度條的學(xué)習(xí)使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
js操作css屬性實(shí)現(xiàn)div層展開(kāi)關(guān)閉效果的方法
這篇文章主要介紹了js操作css屬性實(shí)現(xiàn)div層展開(kāi)關(guān)閉效果的方法,涉及javaScript操作css樣式實(shí)現(xiàn)div彈出層的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05

