日期:2014-05-16  浏览次数:20468 次

关于jquery中的$(this) 和 js中的 this 讨论
$("#search-keyword").focus(function(){
$(this).val("");
// this.value="";
});

关于jquery中的$(this) 和 js中的 this

一个文本框获得焦点时清空文本框内容的小代码,还不完善,不过这不是重点,重点是想问下第二行和第三行两种写法都能达到同样的要求(清空文本框内容),疑惑的是哪种写法更好,或者说有比这两种更好的写法。

$(this)是jquery中的写法,是应该坚持代码类型统一,都用jquery对象来操作,还是简单点的this来解决,浏览器性能上有区别么?
想要提高下认知高度,洗刷下心灵,望成全!!!

------解决方案--------------------
$(this)中的this,就是DOM对象
------解决方案--------------------
兼容性是第一考虑理由:
 1。考虑这应用是否指定浏览器使用的,如果开发GPS机器,手持机的就可以考虑单一浏览器写法;
 2。公开网页使用的话,就考虑主流的浏览器就可以了,jQuery 语法都可以兼容的;
 3。公开使用在电脑也要在手机使用的,就要考虑仔细一点;

性能非常重要的考虑之一:
1。如果只是开发小工具,你就不用考虑太多;
2。走ERP路线的,如果客户端的东西太多,往往都让客户端跑得很慢的了,
3。你要做开发的工具的产品的话,兼容性和性能都非常重要!

jQuery的源代码里都很多 this 的使用的,就是因为需求性能快!
没必要刻意使用 jq语法的!

你的例子里:
JScript code
$("#search-keyword").focus(function(){
$(this).val("");
//    this.value="";
});