2011-06-15 1 views
0

我有一些jQuery的其中一個抓住元素ID,並將其放置到一個文本框jQuery的裝飾文本值和格式

文本框的ID被自動設置,所以我不能改變它。

我想修整ID,然後以便讀取正確

這裏是我的HTML

<a id="day_2294_110_2011-6-2" class="weekday" href="javascript:;">Day</a> 

<input type="text" id="therapydate" /> 

而我的jQuery格式化

$('.weekday').click(function() { 

    $('#therapydate').val($(this).attr('id')); 

}); 

這使價值我的文本框爲day_2294_110_2011-6-2,但我想刪除此day_2294_110_,只剩下2011-6-2,然後格式化爲日期,如thi s 2nd June 2011 or 02/06/2011

這可能嗎?

感謝

回答

4

試試這個(給你在MM/DD/YYYY格式的日期):

var id = $('#therapydate').val($(this).attr('id')); 
var requiredOP = id.replace(/.*_(\d+)-(\d+)-(\d+)$/, '$2/$3/$1'); 

工作例如:http://jsfiddle.net/L42Lq/

+0

這太好了 - 謝謝:) – 2011-06-15 13:44:28

+0

真的很不錯的解決方案!一旦你得到你的日期,你可以使用這裏找到的日期格式代碼http://blog.stevenlevithan。com/archives/date-time-format 當你使用YourResult = dateFormat(你的日期,「dS mmmm yyyy」);並將於2011年6月2日返回 – 2011-06-15 13:55:21

0

在這種情況下,你可以使用string.split ()方法將它分解成一個數組,在這種情況下,數組將包含4個元素,最後一個元素是你想要的部分。

喜歡的東西:

var splitId = $(this).attr('id').split('_'); 
    $('#therapydate').val(splitId[3]); 
0

嘗試這樣的事:

var date = new Date ("day_2294_110_2011-6-2".substring(13, 21)).toUTCString(); 
0

使用@ Cyber​​nate的解決方案。

$('.weekday').click(function() { 
    var date = $(this).attr('id'); 
    $('#therapydate').val(date.slice(date.lastIndexOf("_")+1, date.length)); 
}); 

Try it here

0

您可以split()以及陣列中搶最後一個項目: 在此之後,才能正常格式化你的日期,你可以試試這個

var id = $(this).attr('id')); 
var parts = id.split('_'); 
var datePart = parts[parts.length-1]; 

您也可以拿到最後一個索引的下劃線,然後抓住一切東西的子串:

var id = $(this).attr('id')); 
var index = id.lastIndexOf('_') + 1; 
var datePart = id.substr(index); 

這裏有很多日期格式化文檔。只是谷歌周圍。例如:http://plugins.jquery.com/project/jquery-dateFormat