学习了下别人写的一个tab切换插件,对this和$(this)不是很懂,那位高手指点下:jQuery.fn.Tabs = function() {
return this.each(function() {
x = $(this);
var targets = x.children("div").addClass("tabsdiv").hide();
x.children(".tabsul").children("li").each(function(i) {
this.target = targets[i];
$(this).click(function() {
if ($(this).is(".on")) return; y = $(this).siblings(".on");
y.add(this).toggleClass("on"); $(this.target).add(y.size() > 0 ? y[0].target : null).toggle();
//$(this.target).show().siblings().hide()
});
}).eq(0).click();
});
};

解决方案 »

  1.   

    $(this)是将this对象封装成jQuery对象。使他具有jQuery的那些便利的方法
      

  2.   

    this.each的this是jq对性
    x = $(this);这里的this是选择器里选择了的元素的dom对象,以为each方法会循环已选择的元素然后调用参数传进来的方法。
      

  3.   


    jQuery.each = function( object, callback, args ) {
    if ( args ) {
       if ( object.length == undefined ) {
          for ( var name in object )
             if ( callback.apply( object[ name ], args ) === false )
                break;
       } else
          for ( var i = 0, length = object.length; i < length; i++ )
             if ( callback.apply( object[ i ], args ) === false )
                break;} else {
       if ( object.length == undefined ) {
          for ( var name in object )
             if ( callback.call( object[ name ], name, object[ name ] ) === false )
                break;
       } else // 大多数都是以下else这种情况,callback有2个参数第一个为所在的位置,第2个为dom对象
          for ( var i = 0, length = object.length, value = object[0];
             i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
    } callback.apply( object[ i ], args )
      

  4.   

    this得到的对象是HTML对象,与getElementsByName[i]得到的东西是一样的,可以调用Javascript自带的方法。
    $(this)则是JQuery对象
      

  5.   

    一个是dom对象,一个是jq对象
      

  6.   

    $(this)是jQuery对象,this则要视情况而定,不过似乎只有jQuery.fn中的this是jQuery对象,其它的大多是Dom对象
      

  7.   

    $(this)是jQuery对象,可以使用jquery的方法。而this可能是dom本身的对象了。
      

  8.   

    一个是dom对象,一个是jq对象
      

  9.   

    this是js的概念,函数总是作为某个对象的方法来被调用的,如果没有显示指出函数属于哪个对象,那么就属于window这个对象。当某个函数被调用的时候,this,就是指该函数挂靠的对象。$(this),这句话一定在某个函数体内,所以this就是指某个对象,同时$这个符号是一个合法的js函数名,$(this),就是用this作为参数调用$这个函数。在jquery里,$(this)就是用jquery对象来包裹一下this这个对象,通常this是一个dom节点,单纯的jquery对象没有意义,她必须含有某个的dom节点才有意义,才可以针对这个dom节点做操作。