代码如下,见代码注释部分:<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body><form action="" id="form1">
<input type="text" value="apple"><br />
<input type="text" value="google"><br />
<input type="password" value=""><br />
</form>
<script type="text/javascript">var form=document.getElementById("form1");
for(var i=0;i<form.length;i++){
if(form.elements[i].type=="text"){
//正常的:form.elements[i].onclick
//用this替换form.elements[i]引起错误,和什么有关系?
this.onclick=function(){ alert(this.type); };
}
}</script>
</body>
</html>

解决方案 »

  1.   

    this和form.elements[i]不等价
    话说你为什么会觉得他俩等价啊
      

  2.   


    <script type="text/javascript">
    $(document).ready(function() {
        $("#form1").find("input[type=text]").each(function(i) {
    $(this).bind("click",function(){
      alert($(this).attr("type"));
    });
        });
    });
    </script>
      

  3.   


    这时候的this不应该是引用当前循环中的子元素吗?
    就是说:this=form.elements[i]this==window不是IE浏览器对事件对象的this一个解析问题吗?-------------------------------------------------
    以上有点不解
      

  4.   

    我的理解是this相当于引用当前form.elements[i]