0
假設我有一個網頁表單,用於收集用戶的公司名稱及其地址信息。在相關的JavaScript文件,以減少分散在功能jQuery選擇並在單個對象結構,收集相關信息,我可以存儲所有在一個對象就像在這個簡單的例子:對象中的jQuery選擇器 - 減少冗餘與可讀性
var companyForm = {
name: {
inputField: $("#CompanyName"),
isValid: function() {
return IsNameValid(this.inputField.val());
},
labelField: $("#CompanyNameLabel")
},
address: {
inputField: $("#Address"),
isValid: function() {
return IsAddressValid(this.inputField.val());
},
labelField: $("#AddressLabel")
},
city: {
inputField: $("#City"),
isValid: function() {
return IsCityValid(this.inputField.val());
},
labelField: $("#CityLabel")
}
};
我只需要列出這些選擇一次,然後每當我需要引用的公司名稱,用戶輸入的,我可以用這個:
companyForm.name.inputField.val()
或者,如果我要檢查用戶輸入的有效性:
companyForm.name.isValid()
等(如果用戶輸入格式不正確的輸入並且我想強調他們需要他們的注意,那麼labelField可能是一個標籤元素,我可能想要添加名爲「error」的類) 。
我的困境是,通過應用DRY原則,以我的jQuery選擇,我現在傷害可讀性,因爲:
$("#CompanyName").val()
是一個更容易閱讀和理解比:
companyForm.name.inputField.val()
我不應該試圖通過這種方式來減少冗餘嗎?有沒有更好的方法可以管理或最小化選擇器引用?
如此簡單,我完全忽略它的解決方案!如果我需要訪問鏈接到底層HTML輸入元素的其他各種jQuery屬性和函數,我仍然可以使用更長的語法引用它們。謝謝! – Derek