欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法

 更新時(shí)間:2014年12月20日 11:26:04   投稿:shichen2014  
這篇文章主要介紹了javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法,對比分析了出現(xiàn)問題的代碼與修改后的代碼,并給出了采用閉包實(shí)現(xiàn)的方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法。分享給大家供大家參考。具體分析如下:

可能不少朋友會(huì)遇到一個(gè)問題,那就是當(dāng)使用for循環(huán)批量注冊事件處理函數(shù),然后最后通過事件處理函數(shù)獲取當(dāng)前元素的索引值的時(shí)候會(huì)失敗,先看一段代碼實(shí)例:

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.dbjr.com.cn/" />
<title>腳本之家</title>
<style type="text/css">
li{
  width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  height:30px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var oLis=document.getElementsByTagName("li");
  var oshow=document.getElementById("show");
  for(var index=0;index<oLis.length;index++){
    oLis[index].onclick=function(){
      oshow.innerHTML=index;
    }
  }
}
</script>
</head>
<body>
<div id="show"></div>
<ul>
  <li>只有努力奮斗才會(huì)有美好的明天。</li>
  <li>分享互助是進(jìn)步最大的源動(dòng)力。</li>
  <li>每一天都是新的,要好好珍惜。</li>
  <li>沒有人一開始就是高手,只有努力才有成長的可能</li>
  <li>只有當(dāng)下的時(shí)間是可貴的,下一秒都是虛幻的</li>
</ul>
</body>
</html>

在上面的代碼中,當(dāng)點(diǎn)擊li元素的時(shí)候彈出值始終是四,我們本來的想法是,點(diǎn)擊li元素在div中顯示當(dāng)前l(fā)i元素的索引值,下面就簡單分析一下其中的原因。原因非常的簡單,當(dāng)for循環(huán)執(zhí)行完畢以后,index的值已經(jīng)變?yōu)樗模谑且簿统霈F(xiàn)了上面的現(xiàn)象。
代碼修改如下:

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.dbjr.com.cn/" />
<title>腳本之家</title>
<style type="text/css">
li{
  width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  height:30px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var oLis=document.getElementsByTagName("li");
  var oshow=document.getElementById("show");
  for(var index=0;index<oLis.length;index++){
    oLis[index]._index=index;
    oLis[index].onclick=function(){
      oshow.innerHTML=this._index;
    }
  }
}
</script>
</head>
<body>
<div id="show"></div>
<ul>
  <li>只有努力奮斗才會(huì)有美好的明天。</li>
  <li>分享互助是進(jìn)步最大的源動(dòng)力。</li>
  <li>每一天都是新的,要好好珍惜。</li>
  <li>沒有人一開始就是高手,只有努力才有成長的可能</li>
  <li>只有當(dāng)下的時(shí)間是可貴的,下一秒都是虛幻的</li>
</ul>
</body>
</html>

上面的代碼實(shí)現(xiàn)了我們的要求,當(dāng)然也可以使用閉包的方式,代碼如下:

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.dbjr.com.cn/" />
<title>腳本之家</title>
<style type="text/css">
li{
  width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  height:30px;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var oLis=document.getElementsByTagName("li");
  var oshow=document.getElementById("show");
  for(var index=0;index<oLis.length;index++){
    (function(index){
      oLis[index].onclick=function(){
        oshow.innerHTML=index;
      }
    })(index)
  }
}
</script>
</head>
<body>
<div id="show"></div>
<ul>
  <li>只有努力奮斗才會(huì)有美好的明天。</li>
  <li>分享互助是進(jìn)步最大的源動(dòng)力。</li>
  <li>每一天都是新的,要好好珍惜。</li>
  <li>沒有人一開始就是高手,只有努力才有成長的可能</li>
  <li>只有當(dāng)下的時(shí)間是可貴的,下一秒都是虛幻的</li>
</ul>
</body>
</html>

希望本文所述對大家基于javascript的web程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • js中flexible.js實(shí)現(xiàn)淘寶彈性布局方案

    js中flexible.js實(shí)現(xiàn)淘寶彈性布局方案

    這篇文章主要為大家詳細(xì)介紹了js中flexible.js實(shí)現(xiàn)淘寶彈性布局方案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 深入分析Javascript跨域問題

    深入分析Javascript跨域問題

    JavaScript出于安全方面的考慮,不允許跨域調(diào)用其他頁面的對象。但在安全限制的同時(shí)也給注入iframe或是ajax應(yīng)用上帶來了不少麻煩。這里把涉及到跨域的一些問題簡單地整理一下
    2015-04-04
  • 一文讓你徹底搞清楚javascript中的require、import與export

    一文讓你徹底搞清楚javascript中的require、import與export

    這篇文章主要給大家介紹了關(guān)于javascript中require、import與export的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對打擊大的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • JS實(shí)現(xiàn)的自定義網(wǎng)頁拖動(dòng)類

    JS實(shí)現(xiàn)的自定義網(wǎng)頁拖動(dòng)類

    這篇文章主要介紹了JS實(shí)現(xiàn)的自定義網(wǎng)頁拖動(dòng)類,涉及頁面元素響應(yīng)鼠標(biāo)事件動(dòng)態(tài)改變屬性的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-11-11
  • JavaScript學(xué)習(xí)總結(jié)之JS、AJAX應(yīng)用

    JavaScript學(xué)習(xí)總結(jié)之JS、AJAX應(yīng)用

    這篇文章主要介紹了JavaScript學(xué)習(xí)總結(jié)JS AJAX應(yīng)用 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • layui實(shí)現(xiàn)登陸界面驗(yàn)證碼

    layui實(shí)現(xiàn)登陸界面驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了layui實(shí)現(xiàn)登陸界面驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • javascript 面向?qū)ο骹unction詳解及實(shí)例代碼

    javascript 面向?qū)ο骹unction詳解及實(shí)例代碼

    這篇文章主要介紹了javascript 面向?qū)ο骹unction詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • layui中的tab控件點(diǎn)擊切換觸發(fā)事件

    layui中的tab控件點(diǎn)擊切換觸發(fā)事件

    這篇文章主要介紹了layui中的tab控件點(diǎn)擊切換觸發(fā)事件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 悟透JavaScript整理版

    悟透JavaScript整理版

    編程世界里只存在兩種基本元素,一個(gè)是數(shù)據(jù),一個(gè)是代碼。編程世界就是在數(shù)據(jù)和代碼千絲萬縷的糾纏中呈現(xiàn)出無限的生機(jī)和活力。
    2008-03-03
  • JS截取字符串常用方法整理及使用示例

    JS截取字符串常用方法整理及使用示例

    截取字符串的方法有很多,在使用過程中根據(jù)自己的實(shí)際需求進(jìn)行選擇,下面整理了一些常用的方法及使用示例,感興趣的朋友可以了解下
    2013-10-10

最新評論