为什么这里的jQuery $(this)对象后面要加个下标[0]才有用啊?

下面是我的代码:

$("#uname").blur(function(){
       if($(this)[0].value==""){
           alert(2)
       }
})//这是我慢慢误打误撞弄出来的。之前没$(this)没有加下标是没有弹框的


慕前端8664132
浏览 7986回答 7
7回答

业余奶茶品鉴师

$("#uname").blur(function(){         if($(this)[0].value ==""){             alert(2)         }     })          //jquery方法     $("#uname").blur(function(){         if($(this).val()==""){             alert(2)         }     })     //jquery 方法     $("#uname").blur(function(){         if(this.value==""){             alert(2)         }     })上面的三种方法都可以达到你想要的效果。因为 .value 是js的方法,$(this)是jquery的方法,如果想转换,用js的 .value方法的话,就要用【0】来转化。

堂堂堂堂糖糖糖童鞋

jQuery对象与js对象之间的转换:$(this)[0],这种“jQuery对象”加下标的方式可以将“jQuery对象”转换为“js对象”,这样我们就可以使用“js对象”的属性和方法了;$(this),使用$()包装“js对象”,是一种将“js对象”转换为“jQuery对象”的方式,这样我们就可以使用“jQuery对象”的方法了。更进一步:$($(this)[0]),可以再次包装“js对象”为“jQuery对象”,当然可以$($(this)[0])[0],将“jQuery对象”转换为“js对象”

慕运维6514616

this已经指向当前操作对象了,前面加个$搞什么,又不是PHP

风声猎猎

可以直接使用:this.value this.value 等价于 $(this)[0]

LLaaaalei_

原生和jq用混了这是~~~~

_bug终结者_

把$()去了

最后一次改名字

value是原生js的写法,通过get(0)或者你上面那样写,jq的写法是val();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery