js中的this以及jquery中的this究竟啥意思<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>function a () {
this.innerHTML="<a>xxxxxx</a>";
alert(this.innerHTML);
alert($(this).html());
};
</script>
</head><body onUnload="a()">
<div onClick="a()" style="width:10px; height:10px; background:#999;"></div>
</body>想要获取当前调用方法的对象必须要在onclick=“a(this)”的时候传进去才行么?那还要this干啥啊?搞了好久了还是搞不懂这this

解决方案 »

  1.   

    this是原生的
    $(this) 是经过jq包装过的,之后可以调用html等函数
    建议找本书看看。
      

  2.   

    只能看懂一些简单的this,稍微复杂的就看不太懂了。
    也来等等高人指点
      

  3.   

    JavaScript 中的this 指针是一个动态变化的变量,它表明了当前运行该函数的对象。
    example:
    function Rectangle(w,h){
        this.width = w;
    }
    上面的this指向了当前被创建的对象,同java中类似。
      

  4.   


    同java类似吗 我感觉差很远啊 
    <script>function a () {
    this.innerHTML="<a>xxxxxx</a>";
    };
    </script>
    </head>
    <body>
    <div onClick="a()" style="width:10px; height:10px; background:#999;"></div>
    </body>如果在java中应该div里面内容就改变了吧
      

  5.   

    应该是这样的function a(obj) {
    obj.innerHTML="<a href='#'>xxxxxx</a>";
    alert(this.innerHTML);
    alert($(this).html());
    };<div onClick="a(this)" style="width:100px; height:100px; background:#999;"></div>
      

  6.   

    或者这样function a() {
    arguments[0].innerHTML="<a href='#'>xxxxxx</a>";
    alert(this.innerHTML);
    alert($(this).html());
    };<div onClick="a(this)" style="width:100px; height:100px; background:#999;"></div>
      

  7.   

    我下面不是写了这个方法么,而且你写的还是错的,应该是
    function a(obj) {
    obj.innerHTML="<a href='#'>xxxxxx</a>";
    alert(obj.innerHTML);
    alert($(obj).html());
    };<div onClick="a(this)" style="width:100px; height:100px; background:#999;">……
    关键我问的是function中的this是什么意思啊 
      

  8.   

    哦,function中的this是类的实例例如:function Person(name) {
        this.name = name;
    }var person1 = new Person("ZhangSan");alert(person1.name); // "ZhangSan"
      

  9.   

    div onClick="a(this)"
    this 指向div
      

  10.   

    哦,你说的是构造函数中的this
    http://www.cnblogs.com/RitaRichard/archive/2011/10/14/2212161.html
    我又回头看了一下这篇贴,this在纯粹的function中调用时貌似就是一个全局变量再问个问题 :想要获取当前调用此方法的对象难道只有在调用方法时将this传入这一个吗 还有别的方法吗?
      

  11.   

    原来 this 也有这样的学问
      

  12.   

    可以用DOM0级事件标准啊function a () {
    this.innerHTML="<a>xxxxxx</a>";
    alert(this.innerHTML);
    alert($(this).html());
    };document.getElementById("divId").onclick = a;这时的this就是指的调用方法的对象了,在这里是id为divId的div
      

  13.   

    你是不是写少了 是=a()吧 直接a无法调用
    我试过这个方法 不过很奇怪额 我测试每次都是一进入页面就执行了 不是应该点击才执行么 我都懵了
    而且这个方法this貌似也只是全局变量 没有获取到指定的对象
      

  14.   

    学东西用这种思维你自然很难学好.
    学的时候,必须拼命理解.再难理解的,也不要质疑,多作练习测试,或者放下往前看.
    山重水复疑无路,只因未迈那一步.
    柳暗花明又一村,前行才能见光明.
    对this的解释,现在不必告诉你,告诉你也还是难以理解,往前走,你就懂了.
      

  15.   

    没有错,你这样试试<body>
    <div id="divId" style="width:50px; height:50px; background-color:#F00;"></div>
    <script type="text/javascript">
    function a () {
    this.innerHTML="<a>xxxxxx</a>";
    alert(this.innerHTML);
    alert($(this).html());
    };document.getElementById("divId").onclick = a;
    </script>
    </body>
      

  16.   

    看下这个<script type="text/javascript">
    function a() {
        alert(this.name);
    }window.name = "Lisi";
    var obj = {name: "ZhangSan"};
    obj.sayName = a; 
    obj.sayName(); // "ZhangSan"
    a(); // "Lisi"
    </script>谁调用this就指向谁,当没调用时,也就是在全局作用域中调用时,this指向window
      

  17.   

    哦 谢谢啊 还要在body里面啊  而且我用类名测试也没效果 这样的话这个方法只能针对这一个对象有效 我还是用jquery了 多谢啊
      

  18.   


     原来是指向window的啊 接触几个月了 终于能稍微理解this了 谢谢了