我有以下代码:
$('#detailData')
.on('change', '.updatable', function () {
var type = $(this).attr('id').split('_')[1];
updateField(entity, $(this), type);
return false;
})
Run Code Online (Sandbox Code Playgroud)
我想添加代码并$(this)
多次使用.为了说清楚,我想分配this
一个变量.当我使用jQuery时,我看到人们$
在变量名之前放置了一个.我是否正确说下面的内容是正确的?
var $abc = $('#abc');
Run Code Online (Sandbox Code Playgroud)
如果这是正确的,那么$(this)
如果我理解正确指向DOM变量,我应该如何命名.DOM变量和返回的变量之间是否有任何区别$('#abc')
?
使用$this
存储$(this)
只是一个代号约定,用来提醒程序员有问题的变量是已经一个jQuery对象而不是一个纯粹的DOM元素.
它有助于避免写作的常见错误:
var foo = $(...);
$(foo).doSomething();
Run Code Online (Sandbox Code Playgroud)
这个错误是无害的,但会导致代码效率低下.
相反,使用$foo
也提醒程序员他们不能直接在该变量上调用本机DOM函数,而应该使用$foo[n]
或$foo.get(n)
访问所包含的DOM元素.
另外,不要忘记,因为this
它只是一个纯DOM元素,您可以(并且应该)在适当时使用本机DOM函数或属性:
var type = this.id.split('_')[1];
Run Code Online (Sandbox Code Playgroud)