2015-07-13 89 views
0

我需要像日程表一樣記錄日記。比方說,我有這個jQuery來計算或做點什麼如何用前綴和後綴創建一個影響id的jquery函數?

$('#report_time_hours').change(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 
$('#report_time_minutes').keyup(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 
$('#report_time_period').change(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 

這些函數被認爲是一天中的一組函數。

我有7天(週一至週日),並在HTML的一部分,我應該通過添加前綴,它像mon_reportnamemon_report_time_hourssun_report_time_hours等如果我使用

重命名的ID和名稱...

$('[id$=_report_time_hours]') 

這必將影響到所有領域與後綴標識,無論前綴(週一,週二等)

所以,我怎麼能做出一套功能隻影響相似的前綴?

+1

可以大家分享的HTML樣本 –

+0

關於給所有如何這些元素的類名太/ /而不是? – Cerbrus

+0

你的意思是像加入class =「Monday」?順便說一句,說清楚,我試圖避免每天做7套功能。 – BaimAT

回答

0

給你的身份證的號碼,例如:

$('#report_time_hours1').change(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 
$('#report_time_minutes1').keyup(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 
$('#report_time_period1').change(function() { 
    $('[name=reporttime]').val(/* new value */); 
}); 

然後ü可以每天表示爲數字1 - 週日等

那麼你的代碼應該是這樣的:

for(i=1;i<=7 ; i++) 
{ 
    $('#report_time_hours' + i).change(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 
    $('#report_time_minutes1' + i).keyup(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 
    $('#report_time_period1' + i).change(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 
} 

這應該做的伎倆。

雖然我會去爲所有的數據類,然後它應該是簡單得多:

$('classForHours').change(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 
    $('classForMinutes').keyup(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 
    $('classForPeriods' + i).change(function() { 
     $('[name=reporttime]').val(/* new value */); 
    }); 

這也將這樣的伎倆

+0

哦,是的,數字。爲什麼沒有出現在我的腦海裏(-_-)。但是,你能解釋更多關於班級的部分嗎?不管怎樣,謝謝。 – BaimAT

+0

是的,當你給你的小時課,例如他們做同樣的事情,所以當你在jquery $('。className')中搜索這個時候,這將使用這個className給你一個所有dom元素的數組,然後你可以附加對這個數組和你所有的dom元素的改變將會得到這個改變。 –

+0

現在,我可以使用$('。className [i]')將它放到一個循環中,對吧?對不起,我理解這件事有點慢。編輯:它應該是$('。className:eq(i)'),對吧?好的謝謝! – BaimAT