zoukankan      html  css  js  c++  java
  • js 循环BUG

    <div>1</div>
    <div>2</div>
    <script type="text/javascript">
    var elements = document.getElementsByTagName("div");
    for (var i = 0; i<elements.length; i++) {
    //	elements[i].onclick=function(){
    //		alert("Div number " + elements[i].innerHTML); //在遍历数组时对DOM监听事件,索引值始终等于遍历结束后的值(数组长度)
    //	}
        elements[i].onclick = 
    	(function(idx) {          //闭包,正确显示
        	return function() {   
                alert("Div number " + elements[idx].innerHTML);  
            }
        })(i);
    }
    for (var i = 0; i<elements.length; i++) {
    	elements[i]._index=i;
    	elements[i].onclick=function(){
    		alert("Div number " + elements[this._index].innerHTML);
    	}
    }
    </script>
    

    用这种方式,也可以在类中替换this

    var name="window";
    function createFun(){
    	this.name="obj";
    	this.getNameFun=function(that){
    		return function(){
    			return that.name;
    		};
    	}(this);
    }
    var obj=new createFun();
    console.log(obj.getNameFun()); //obj
    

      

  • 相关阅读:
    linux下使用OpenCV的一些问题
    Google Colab调用cv2.imshow奔溃
    [LeetCode] Word Search
    信号
    信号
    [Leetcode] Subsets
    [LeetCode] Combinations
    [LeetCode] Minimum Window Substring
    [LeetCode] Set Matrix Zeroes
    sigaction 函数
  • 原文地址:https://www.cnblogs.com/frostbelt/p/2388713.html
Copyright © 2011-2022 走看看