我使用的是O/S插件腳本不必硬編碼 - 重複html選擇元素的所有10個實例的塊?我可以設置一個隱藏的表單元素的索引值設置爲它並使用像這樣。()。val()?這有點超出了我的編碼技能。謝謝。如何凝結的jQuery代碼重複塊
$('#serviceTypeID\\[1\\],#serviceTypeID\\[2\\],#serviceTypeID\\[3\\],#serviceTypeID\\[4\\],#serviceTypeID\\[5\\],#serviceTypeID\\[6\\],#serviceTypeID\\[7\\],#serviceTypeID\\[8\\],#serviceTypeID\\[9\\],#serviceTypeID\\[10\\]').change(function() {
// 1st identical instance of the block
var first = parseInt($('#firstService\\[1\\]').val());
var second = parseInt($('#secondService\\[1\\]').val());
var third = parseInt($('#thirdService\\[1\\]').val());
if (isNaN(first)) first = 0;
if (isNaN(second)) second = 0;
if (isNaN(third)) third = 0;
$('#serviceTotal\\[1\\]').val((first + second + third + ' Total'));
// 2nd identical instance of the block
first = parseInt($('#firstService\\[2\\]').val());
second = parseInt($('#secondService\\[2\\]').val());
third = parseInt($('#thirdService\\[2\\]').val());
if (isNaN(first)) first = 0;
if (isNaN(second)) second = 0;
if (isNaN(third)) third = 0;
$('#serviceTotal\\[2\\]').val((first + second + third + ' Total'));
// 3rd identical instance of the block
first = parseInt($('#firstService\\[3\\]').val());
second = parseInt($('#secondService\\[3\\]').val());
third = parseInt($('#thirdService\\[3\\]').val());
if (isNaN(first)) first = 0;
if (isNaN(second)) second = 0;
if (isNaN(third)) third = 0;
$('#serviceTotal\\[3\\]').val((first + second + third + ' Total'));
//and so on up to 10 currently
// 10th identical instance of the block
first = parseInt($('#firstService\\[10\\]').val());
second = parseInt($('#secondService\\[10\\]').val());
third = parseInt($('#thirdService\\[10\\]').val());
if (isNaN(first)) first = 0;
if (isNaN(second)) second = 0;
if (isNaN(third)) third = 0;
$('#serviceTotal\\[10\\]').val((first + second + third + ' Total'));
});
除了重構擺脫重複的,你真的應該使用基本參數與'parseInt':'變種X = parseInt函數(FOO,10);'。 –
謝謝你的建議@IngoBürk這也超出了我目前的技能發展進程。 –
在'parseInt'的每個調用中添加',10'都超出了你的技能範圍? –