我不擅長創建高效的代碼,所以希望有人能提供一些建議。Jquery - 爲多個ID使用一個函數來保存重複的代碼
這是我的問題的一個非常基本的例子。 我有兩個文本框和兩個選擇框形式:
<input type="text" name="phone1" id="phone1" />
<select id="p1_format">
<option value="Landline">Land Line Number</option>
<option value="Mobile">Mobile</option>
</select>
<div id="p1info"></div>
<input type="text" name="phone2" id="phone2" />
<select id="p2_format">
<option value="Landline">Land Line Number</option>
<option value="Mobile">Mobile</option>
</select>
<div id="p2info">
我使用一個jQuery插件口罩適用於輸入框。 用戶從選擇框中選擇數字類型以確保正確的掩碼。 Onchange然後應用掩碼並將基本描述寫入div html。
$(document).ready(function() {
$('#p1_format').change(function(){
if($(this).val() =="LandLine"){
$("#phone1").mask("+61 9 9999-9999");
$('#p1info').html("Format: +61 8 XXXX-XXXX");
}
if($(this).val() =="Mobile"){
$("#phone1").mask("9999 999-999");
$('#p1info').html("Format: XXXX XXX-XXX");
}
});
});
這一切運作良好,但我不得不重複上面的jQuery函數來處理PHONE2和更改所有的ID值#p2_format,#PHONE2 &#p2info。
有沒有辦法通過發送$(「#thispart」)作爲變量來使用這個函數?或者我可以如何重用代碼而不是重複它?
我的問題有意義嗎? 感謝您的幫助。
是否可以稍微更改一下HTML以便更容易地使用更通用的JS? – nnnnnn
因此,你的格式將''phone1'到'#phone2'和'#p1info'到'#p2info'?在這種情況下,你可以使用for循環並使用'$('#phone'+ i)'和'$('#p'+ i +'info')':) –
@nnnnnn你能提出什麼建議? – MrK