2011-06-15 81 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