問題代碼
var aa = {
change: function() {
$("#name").value = '已發送'; // 錯誤:jQuery 對象無 value 屬性
}
};
aa.change(); // 調用
錯誤點
$("#name") 返回 jQuery 對象,**無 value 屬性**;應用 .val('已發送') 或 [0].value = ...。
- 對象字面量定義時方法**不會自動執行**,需顯式調用
aa.change()。
正確寫法
$(function() { // DOM 就緒後
var aa = {
change: function() {
$("#name").val('已發送'); // 正確
}
};
aa.change(); // 立即調用
});
關鍵知識
- 對象字面量只是定義,不自動執行內部函數。
- jQuery 設置輸入框值用
.val(),原生 DOM 用 .value。
- 若需構造函數自動執行,改用類/構造函數模式:
function AA() { this.change = function() {...}; this.change(); } new AA();