JS遍歷ul下的li點擊彈出li的索引的實現(xiàn)方法
首先我們需要一個html結構
<div > <ul> <li>a</li> <li>a</li> <li>a</li> <li>a</li> <li>a</li> </ul> </div>
我們遍歷ul 下所有的li 并添加點擊事件,一般我們會在for循環(huán)里面添加點擊事件,但是結果和我們所期盼不一樣,那么是為什么呢????
接下來看看我們的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標簽彈出對應的索引功能【案例】
相關文章
js操作css屬性實現(xiàn)div層展開關閉效果的方法
這篇文章主要介紹了js操作css屬性實現(xiàn)div層展開關閉效果的方法,涉及javaScript操作css樣式實現(xiàn)div彈出層的效果,非常具有實用價值,需要的朋友可以參考下2015-05-05

