我试图缩短网页上的活动时间,只显示开始时间,而不是开始和结束时间。例如,如果时间说:
下午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));
})
然而,这不起作用。谁能告诉我我做错了什么?
答案 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));
第一个是错误的,因为你不想要时间跨度的内容但是这个(在每个内容中)。第二行只是不必要地重复看到这个小提琴