Selector vs this in jQuery
Selector vs this in jQuery
在下面的例子中是否有理由使用ID而不是"this"呢?
$("#firstname").click(function() {
$("#firstname").val("changed");
});
vs: $("#firstname").click(function() {
$(this).val("changed");
});
结果是一样的。
这个想法是,如果您更改了上面的firstname
,您将不必在第二个块中再次更改它。如:
$("#my-new-name").click(function() {
// "this" remains the same.
$(this).val("changed");
});
同样,在性能方面,jQuery
将不需要解析字符串并通过其选择器引擎运行,而this
是一个原始的DOMElement,它可以快速检测其类型并继续前进。
使用this
而不是id
的一个原因是性能。
当您输入click处理程序时,this
已经存在并已设置。
this
创建一个jQuery对象要比调用sizzle(选择器引擎)通过id查找元素并创建jQuery对象
快得多。选择this
的另一个原因是语义。从语义上讲,当我输入点击处理程序时,this
更容易在上下文中阅读。这是因为我已经知道处理程序是针对#firstname
的。但是,如果我看到一个id选择器,我必须仔细检查并确保处理程序选择器和id
选择器是同一个。
和使用this
的jQuery不需要做选择工作。所以this
会比selector
ID可以更改(为什么要更改是另一回事)
考虑:
$("#firstname").click(function() {
$("#firstname").val("changed");
})[0].id="somethingElse";
和
$("#firstname").click(function() {
$(this).val("changed");
})[0].id="somethingElse";
相关文章:
- 重构 jQuery in JS 问题
- jquery in the middle of html
- Jquery in AngularJs
- jQuery :in-viewport selector accuracy
- Jquery in 循环执行一些记录计算
- Java 脚本或 jquery in rails 应用程序中
- jQuery In Custom Login Screen xhtml
- Using jQuery in Cloud9
- jQuery in KnockoutJS
- 使用PHP Curl、Jquery In Loop获取多个url数据
- Extending jQuery in Internet Explorer 11
- Jquery in phonegap
- jQuery in iBooks
- Jquery in FireFox?
- JQuery in Liferay
- jQuery in iPhone
- HTML and JQuery in Webstorm IDE
- jquery in html injection
- Ajax and Jquery in Symfony
- JScript or JQuery in Windows