js循環給li綁定事件實現 點擊li彈出其索引值 和內容

近期,面試咱們總會遇到這樣一個面試題:html

如今網上答案不少苟同,可是我仍是想在重複的述說一遍,俗話說:好記憶不如爛筆頭, 雖然常見,簡單,反覆出現,總之,在簡單的多寫寫記憶仍是很深入的,即便忘了,也能拿出來翻翻。面試

代碼以下:(簡單些)this

html代碼htm

  <ul>索引

  <li>香蕉</li>get

  <li>蘋果</li>it

     <li>菠蘿</li>io

  <li>獼猴桃</li>function

  <li>芒果</li>cli

  </ul>

方法一:

   var itemli = document.getElementsByTagName("li");

   for(var i = 0; i<itemli.length; i++){

    itemli[i].index = i; //給每一個li定義一個屬性索引值,賦

    itemli[i].onclick = function(){

      alert("下標索引值爲:"+this.index+"\n"+"文本內容是:"+this.innerHTML);    //  \n換行   索引值從0開始

    }

   }

方法二:(經常使用)

var itemli = document.getElementsByTagName("li");

for(var i = 0; i<itemli.length; i++){

   (function(n){

          itemli[i].onclick = function(){

      alert("下標索引值爲:"+n+"\n"+"文本內容是:"+itemli[n].innerHTML);    //  \n換行   索引值從0開始

     }

    })(i)

   }

或者or:

for(var i = 0; i<itemli.length; i++){
        itemli[i].onclick = function(n){
        return function(){
                alert("下標索引值爲:"+n+"\n"+"文本內容是:"+itemli[n].innerHTML);    //  \n換行   索引值從0開始
            }
      }(i)
    }

方法三:jQuery(更簡單)

$("ul li").click(function(){
        var item = $(this).index();  //獲取索引下標 也從0開始
        var textword = $(this).text();  //文本內容
        alert("下標索引值爲:" + item +"\n"+ "文本內容是:"+textword); //  \n換行
    })

但願對你有幫助, 整理一下。

相關文章
相關標籤/搜索