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é)果和我們所期盼不一樣,那么是為什么呢????
接下來看看我們的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)了?。?!
這樣就是得來我們想要的效果點(diǎn)擊相應(yīng)的li得來相應(yīng)的索引。
簡單說一下實(shí)現(xiàn)的過程吧
(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),這樣我們再點(diǎn)擊的時(shí)候,會(huì)調(diào)用作用域名內(nèi)保存的索引,從而實(shí)現(xiàn)我們需要的功能;
我們幾個(gè)簡單的例子
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的索引,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- js 索引下標(biāo)之li集合綁定點(diǎn)擊事件
- JS數(shù)組操作(數(shù)組增加、刪除、翻轉(zhuǎn)、轉(zhuǎn)字符串、取索引、截取(切片)slice、剪接splice、數(shù)組合并)
- 用javascript為DropDownList控件下拉式選擇添加一個(gè)Item至定義索引位置
- JavaScript遍歷DOM元素的常見方式示例
- JavaScript實(shí)現(xiàn)的DOM樹遍歷方法詳解【二叉DOM樹、多叉DOM樹】
- JS遍歷DOM文檔樹的方法實(shí)例詳解
- javascript先序遍歷DOM樹的方法
- JavaScript簡單遍歷DOM對象所有屬性的實(shí)現(xiàn)方法
- JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能【案例】
相關(guān)文章
javascript String 的擴(kuò)展方法集合
String 的擴(kuò)展方法集合,可以是javascript對string的功能更多2008-06-06使用?TypeScript?開發(fā)?React?函數(shù)式組件
這篇文章主要介紹了使用?TypeScript開發(fā)React函數(shù)式組件,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-08-08javascript 不停(setInterval)/延時(shí)(setTimeout)函數(shù)使用實(shí)例
如果想實(shí)現(xiàn)頁面的一些函數(shù)的定時(shí)執(zhí)行,需要用到下面的函數(shù)大家可以看下用法。2009-08-08JavaScript判斷一個(gè)URL鏈接是否有效的實(shí)現(xiàn)方法
如何用javascript來判斷請求的url/鏈接有效(可連接,可用)?需要的朋友可以參考下。2011-10-10關(guān)于TypeScript模塊導(dǎo)入的那些事
Typescrit的模塊機(jī)制與es6的模塊基本類似,也提供了轉(zhuǎn)換為amd,es6,umd,commonjs,system的轉(zhuǎn)換,下面這篇文章就來給大家詳細(xì)介紹了關(guān)于TypeScript模塊導(dǎo)入的那些事,需要的朋友可以參考借鑒,下面來一起看看吧2018-06-06給easyui的datebox控件添加清空按鈕的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄oeasyui的datebox控件添加清空按鈕的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11webpack-dev-server搭建本地服務(wù)器的實(shí)現(xiàn)
當(dāng)我們使用webpack打包時(shí),發(fā)現(xiàn)每次更新了一點(diǎn)代碼,都需要重新打包,我們希望本地能搭建一個(gè)服務(wù)器,本文就介紹如何使用webpack-dev-server搭建本地服務(wù)器,感興趣的可以了解一下2021-07-07js實(shí)現(xiàn)支付倒計(jì)時(shí)返回首頁
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)支付倒計(jì)時(shí)返回首頁,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10