JS遍歷ul下的li點擊彈出li的索引的實現(xiàn)方法
首先我們需要一個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 并添加點擊事件,一般我們會在for循環(huá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) }
我們實現(xiàn)了?。?!
這樣就是得來我們想要的效果點擊相應的li得來相應的索引。
簡單說一下實現(xiàn)的過程吧
(function () { /* code */ } ()); // 推薦使用這個 (function () { /* code */ })(); // 但是這個也是可以用的
這是我整理立調(diào)函數(shù)或自執(zhí)行函數(shù);
本質(zhì)上我們是利用閉包的原理實現(xiàn)彈出的索引,我們立調(diào)函數(shù)傳一個參數(shù)Index,也就是我們的索引i,在函數(shù)里面實現(xiàn)了閉包,
Index會一直保留在作用域塊內(nèi),這樣我們再點擊的時候,會調(diào)用作用域名內(nèi)保存的索引,從而實現(xià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點擊彈出li的索引,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- js 索引下標之li集合綁定點擊事件
- JS數(shù)組操作(數(shù)組增加、刪除、翻轉(zhuǎn)、轉(zhuǎn)字符串、取索引、截取(切片)slice、剪接splice、數(shù)組合并)
- 用javascript為DropDownList控件下拉式選擇添加一個Item至定義索引位置
- JavaScript遍歷DOM元素的常見方式示例
- JavaScript實現(xiàn)的DOM樹遍歷方法詳解【二叉DOM樹、多叉DOM樹】
- JS遍歷DOM文檔樹的方法實例詳解
- javascript先序遍歷DOM樹的方法
- JavaScript簡單遍歷DOM對象所有屬性的實現(xiàn)方法
- JS實現(xiàn)點擊li標簽彈出對應的索引功能【案例】
相關文章
使用?TypeScript?開發(fā)?React?函數(shù)式組件
這篇文章主要介紹了使用?TypeScript開發(fā)React函數(shù)式組件,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-08-08javascript 不停(setInterval)/延時(setTimeout)函數(shù)使用實例
如果想實現(xiàn)頁面的一些函數(shù)的定時執(zhí)行,需要用到下面的函數(shù)大家可以看下用法。2009-08-08JavaScript判斷一個URL鏈接是否有效的實現(xiàn)方法
如何用javascript來判斷請求的url/鏈接有效(可連接,可用)?需要的朋友可以參考下。2011-10-10給easyui的datebox控件添加清空按鈕的實現(xiàn)方法
下面小編就為大家?guī)硪黄oeasyui的datebox控件添加清空按鈕的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11webpack-dev-server搭建本地服務器的實現(xiàn)
當我們使用webpack打包時,發(fā)現(xiàn)每次更新了一點代碼,都需要重新打包,我們希望本地能搭建一個服務器,本文就介紹如何使用webpack-dev-server搭建本地服務器,感興趣的可以了解一下2021-07-07