2014-06-18 49 views
1

我需要使用jQuery生成引用號(我不瞭解最佳方法,但我最好使用它)。jQuery,按類查找最大數字,將值增加1並將剩餘值插入字段

每個現有填上數目爲一類,這些隱藏在網頁上,只可用於這種用途:

<div class="Ref 14001"></div> 
<div class="Ref 14002"></div> 
<div class="Ref 14003"></div> 

,參考號碼順序,而「14」前綴表示年份。在每年年初,該號碼需要重置爲「YY001」。因此,在2015年開始,我需要它來自動更改爲:

<div class="Ref 15001"></div> 

所以需要採取什麼措施是當頁面加載腳本運行,發現最近的數字,在這種情況下,「14003」,我需要再檢查前兩個數字是否爲當年,如果沒有,則更新並重置該數字。如果是這樣,只需加上「1」(14004),並插入到一個字段:

<input type="text" class="ref-number" name="ref-number" /> 

我的jQuery的知識是很基本的,所以代碼示例或jFiddles將不勝感激。感謝您提前提供任何幫助。

編輯:感謝您指導我發佈這些發佈指南,我將盡力發佈我的示例。我的問題的第一部分有一個jsFiddle。我可以找到最大的數字(按類別,然後從建議ID),並增加1:http://jsfiddle.net/PKMYy/

這是我的問題的其他部分,我甚至不知道從哪裏開始。

+0

爲什麼不使用php或其他編程語言? –

+2

你好。 Stackoverflow旨在幫助像你這樣的人找到他們的問題的解決方案,但是需要嘗試自己解決問題。我們不是爲您編寫代碼/解決方案,而是幫助您解決您的嘗試問題。請參閱[如何問](http:// stackoverflow。com/questions/how-to-ask) –

+0

+1 @scrowler。請告訴我們你已經嘗試了多少,以及你有多遠,沒有按預期工作。 – PeterKA

回答

1

由於您的參考不總是相同的,這聽起來更像是id而不是class

你可以像這樣把它分解了起來:

<div id="14001" class="ref"></div> 
<div id="14002" class="ref"></div> 
<div id="14003" class="ref"></div> 

你可以找到所有這些div的搭配:

$('.ref') 

...然後遍歷它們,發現數量最多,和加1。

如果你的div總是連續的,意思是最後數字也總是最高號碼,那麼我認爲你可以用last()來獲取列表中的最後一個元素,從該div中取出id,然後添加一個。

喜歡的東西:

var nextId = parseInt($('.ref').last().id) + 1; 

爲了處理兩位數的年份的解析,如果ID總是5位長,那麼你可以通過1000劃分它,這將是(粗糙的僞代碼) :

yearOfLastId = 14003/1000 = 14 
yearOfToday = new Date().getYear() % 100 // (2014-06-18 .getYear() = 114 % 100 = 14) 
if yearOfLastId != yearOfToday 
    nextId = yearOfToday + '001'; 
else 
    nextId = yearOfLastId + '' + nextId; 
+0

請注意:[HTML <5不會喜歡以數字開頭的ID](http://stackoverflow.com/a/79022/2812842) - 最好使用數據屬性來代替? –

+0

啊,夠公平的。 – jefflunt