image_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:34:49
オリジナル
1119 人が閲覧しました

... "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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート