删除符号后的文本

时间:2015-07-08 18:21:20

标签: jquery

我试图缩短网页上的活动时间,只显示开始时间,而不是开始和结束时间。例如,如果时间说:

  

下午4:30 - 下午6:00

我想将其简化为:

  

下午4:30

时间会在页面上出现几次,有时它会第一次出现,就像我想要的那样。我把时间包裹在一个名为.timeSpan的范围内。

我在这个网站上做过一些研究,我发现了一些类似的例子,并试图为我的目的定制它们。我已经到了这个地方:

$('.timeSpan').each(function() {
    var s = $(".timeSpan").text();
    var n = s.indexOf(' -');
    var p = s.substring(0, n != -1 ? n : s.length);
    $(this).text(text.replace(s, p)); 
})

然而,这不起作用。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

.split()就是您所需要的。

$('.timeSpan').each(function() {
    var string = $(this).text();
    var times = string.split(" - ");
    $(this).text(times[0]); 
});

分裂的优点是你得到一个包含所有元素的数组,意味着时间[0]是第一个(开始),时间[1]是下一个,这里是最后一个(结束) - 也许你需要不知何故。

修改

您的代码无法正常工作的唯一原因是因为这一行:

var s = $(".timeSpan").text();

$(this).text(text.replace(s, p)); 

第一个是错误的,因为你不想要时间跨度的内容但是这个(在每个内容中)。第二行只是不必要地重复看到这个小提琴

http://jsfiddle.net/jy13fde6/