替换元素中的一些文本(不是全部)

时间:2011-04-06 08:05:55

标签: jquery

我有一个jQuery日期&时间选择器我把输入限制在00:00或12:00,所以我可以让它以半天/全天的方式工作。这意味着它用以下内容填充框:

dd/mm/yy 12:00

我希望能够获取此字段的内容并将其放在以下样式的新字段中:

dd/mm/yy PM

那么,我是否可以获取此文本字段的.val()并替换其中一些的内容,而不是全部?

5 个答案:

答案 0 :(得分:2)

<input value="dd/mm/yy 12:00" />

var x = $('input').val();
var y = x.split(' ');
var z = y[0] + ' ' + (y[1] >= '12:00' ? 'PM' : 'AM');
alert(z)

检查http://jsfiddle.net/aGURT/

处的工作示例

答案 1 :(得分:1)

您选择.val(),修改它,然后使用.val(newValue)设置新值。

要替换时间,您可以使用value.replace(/[0-9]+:[0-9]+$/, 'something-else')

答案 2 :(得分:1)

相当脏,但应该有效:

var date = 'dd/mm/yy 12:00';
var splitted = date.split(' ');
var result = splitted[0] + ' ' + (splitted[1] == '12:00' ? 'PM' : 'AM');

答案 3 :(得分:1)

替换元素的内容时,您必须全部替换它。不过,您可以复制整个元素直到第一个空格,然后附加您的字符串..

var input = $('#yourid').text().split(' ');
var text = input[0];
/* process input[1] and add it to text */
$('#yourid').html(text).

答案 4 :(得分:0)

这可能有效:

var v = $.trim($('input').val());
var d;
if(v == '00:00')
     d = v.replace('00:00','AM'); $('input').val(d);
if(v== '12:00')
     d = v.replace('12:00','PM');$('input').val(d);