> 웹 프론트엔드 > HTML 튜토리얼 > image_html/css_WEB-ITnose

image_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:34:49
원래의
1121명이 탐색했습니다.


回复讨论(解决方案)

document.getElementById("aa").innerHTML = parseInt(document.getElementById("aa").innerHTML, 10) + i

用闭包

(function (i) {	img.onload = function () {		..............	}})(i);
로그인 후 복사

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body><button>button1</button> <br><button>button2</button> <br><button>button3</button> <br><button>button4</button> <br><hr><a>anchor1</a> <br><br><a>anchor2</a> <br><br><a>anchor3</a> <br><br><a>anchor4</a> <br><br><script>        var btns = document.getElementsByTagName("button");    for ( var i = 0; i < btns.length; i++ ) {        btns[i].onclick = function handler() {            //alert( this.innerHTML )            console.info( i, this.innerHTML );             /* 输出                4 "button1"                4 "button2"                4 "button3"                4 "button4"            */        }    }    alert( i ); //=> 4,JS中没有局部变量(不考虑ES6)    /*        这是因为,局部变量i在函数handler调用时,依然有效;        函数handler的调用,发生在整个for循环执行完毕后,此时i=4    */    </script>   <script>    var anchors = document.getElementsByTagName("a");    for ( var i = 0; i < btns.length; i++ ) {        ( function ( x ) {            anchors[x].onclick = function() {                console.info( x, this.innerHTML );             };        } ) ( i );    }    /*        将变量i的值传递到立即执行的函数 (function(x){})(i),        这样,每次循环, x 的值就为当次循环的i的值,而不是直接引用变量i    */</script></body></html>
로그인 후 복사

采用闭包成功解决了问题,谢谢各位同仁大神的帮助

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿