jquery函数val()不等于"$(this).value ="?

lka*_*htz 35 jquery

当我尝试使用时将文本输入设置为空白(单击时)$(this).value="",这不起作用.我必须使用$(this).val('').

为什么?有什么不同?valjQuery中函数背后的机制是什么?

$(document).ready(function() {
    $('#user_name').focus(function(){
        $(this).val('');
    });
});
// error code: not working...
$(document).ready(function() {
    $('#user_name').focus(function(){
        $(this).value='';
    });
});
Run Code Online (Sandbox Code Playgroud)

Ken*_*ler 78

你要:

this.value = ''; // straight JS, no jQuery
Run Code Online (Sandbox Code Playgroud)

要么

$(this).val(''); // jQuery
Run Code Online (Sandbox Code Playgroud)

随着$(this).value = ''你分配一个空字符串作为value一个封装的jQuery对象的属性this-不是valuethis本身.


Nat*_*lor 15

$(this).value试图调用jQuery对象的'value'属性,该属性不存在.本地JavaScript 确实有一定的HTML对象的"价值"的财产,但如果你是一个jQuery对象上操作必须通过调用访问值$(this).val().