this.val()不适用于文本框,但是$('。selector')。val()工作

时间:2011-07-13 12:17:24

标签: jquery

在我的代码中,$("#date")是附加了jquery datepicker的文本字段。在下面的代码中,当我选择日期时,firebug会显示此错误this.val is not a function

$("#date").change(function(){  
    var mydate = this.val();
    alert(mydate);
});

但是当我使用this.val()更改$("#date").val()时,它会完美运行并提醒所选日期。任何人都可以指出this.val()无效的原因吗?

修改
对不起,$这是一个错字。我实际上使用了this.val(),而不是$ this.val()

5 个答案:

答案 0 :(得分:10)

事件函数中的

this不是jquery对象,它是一个dom对象。将其称为$(this),它应该适合您。

$("#date").change(function(){  
    var mydate = $(this).val();
    alert(mydate);
});

答案 1 :(得分:9)

你应该写

$(this).val();

答案 2 :(得分:2)

$ this.val()应为$(this).val();

$("#date").change(function(){  
    var mydate = $(this).val();
    alert(mydate);
});

答案 3 :(得分:2)

this是一个实际的DOM元素,而val()是一个jQuery方法 - 你不能将它们结合起来。使用$(this).val()

答案 4 :(得分:2)

试试这个

var mydate = $(this).val();