2012-05-05 42 views
4
<td colspan="2" class="ai1ec-time"> 
    <a class="ai1ec-button ai1ec-calendar-link" href="#"> 
     Back to Calendar »     
    </a> 
    July 12, 2012 @ 08:00 am – July 13, 2012 @ 10:00 pm 
</td>​ 

以上是我的HTML標記,它顯示下面的文本。用jQuery刪除字符串中的一些文本

返回到日曆» 2012年7月12日@上午08:00 - 2012年7月13日,@下午10:00

我需要從開始日期/時間和@ 10:00 pm刪除@ 08:00 am結束日期/時間。這怎麼能用jQuery來完成?我聽說過並且讀過一些名爲Regexp的東西,那是需要用到的嗎?用jQuery remove()?

我忘了提及'時間'不固定。這是固定不變的唯一的事情就是需要被移除的部分開頭「@」與「M」

+0

被刪除的部件是否總是「@ 08:00 am」和「@ 10:00 pm」? – Sampson

+0

沒有。時間會有所不同。但它總是以@ –

+0

開頭,是否有可能改變html,將元素包含在跨度中,還是使用數據屬性使定位更容易? – Nucleon

回答

4
$(".ai1ec-time").html(function(i,o){ 
    return o.replace(/@[0-9:\s]+(am|pm)/ig, ''); 
}); 

演示:http://jsbin.com/ozuwob/2/edit

+0

謝謝喬納森!現在讓我試試這個 –

+0

@IwaniKhalid你有沒有運氣? – Sampson

+0

http://jsfiddle.net/pLAnd/1/不幸的是,在jsfiddle上。不知道它是否是渲染引擎 –

1

結束首先要確定你已經jQuery的運行(jQuery

然後使用是這樣的:

$(".ai1ec-time").html(function(i,o){ 
    return o.replace(/\@\s\d\d\:\d\d\s(am|pm)/ig, ''); 
}); 

演示:js bin

+0

是的,它不僅僅是早上8點和上午10點這對我來說是艱難的一點 –

+0

雖然添加了正則表達式,但未經測試讓我知道它是否工作 – FLY

+0

http://jsfiddle.net/s7vK2/3/似乎並沒有工作 –

1
var $td = $('td.ai1ec-time') 
$td.html($td.html().replace(/@ \d{1,2}:\d{2} [ap]m/g, '')) 
+0

這看起來很酷。讓我試試這個 –

+0

我在這裏做錯了什麼?似乎沒有工作http://jsfiddle.net/mTpCn/2/ –

+0

不,我做錯了。我剛剛編輯正則表達式使其工作 – user907860