2011-07-13 44 views
2

在我的代碼,$("#date")是安裝jQuery的日期選擇器一個文本框。在下面的代碼,當我選擇一個日期,螢火顯示了這個錯誤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 $()

+0

您在代碼中有$ this.val。那this.val呢?我可能會誤解,但我認爲在這種情況下_這是指事件而不是選擇器。 – thescientist

+0

@Sparky你必須學會​​DOM元素對象和jQuery對象之間的差異。 –

+0

@thescientist:不,'this'將參照對象。如果他想讓田地的價值成爲老派的JS方式,他會使用'this.value'。 – Shef

回答

8

this在事件函數不是一個jQuery對象,這是一個DOM對象。解決它爲$(this)它應該爲你工作。

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

$ this.val()應該是$(本).VAL();

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

this是一個實際的DOM元素,val()是一個jQuery方法 - 你不能將二者結合起來。使用$(this).val()

+0

感謝您的解釋:) – Sparky

2

試試這個

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