我正在開發一個經典的ASP頁面,該頁面從數據庫中提取一些內容,並在前100個字符後面創建Read More鏈接,如下所示;使用JavaScript substring()創建多讀鏈接
<div class="contentdetail"><%=StripHTML(rspropertyresults.Fields.Item("ContentDetails").Value)%></div>
<script type="text/javascript">
$(function() {
var cutoff = 200;
var text = $('div.contentdetail').text();
var rest = $('div.contentdetail').text().substring(cutoff);
if (text.length > 200) {
var period = rest.indexOf('.');
var space = rest.indexOf(' ');
cutoff += Math.max(Math.min(period, space), 0);
}
var visibleText = $('div.contentdetail').text().substring(0, cutoff);
$('div.contentdetail')
.html(visibleText + ('<span>' + rest + '</span>'))
.append('<a title="Read More" style="font-weight:bold;display: block; cursor: pointer;">Read More…</a>')
.click(function() {
$(this).find('span').toggle();
$(this).find('a:last').hide();
});
$('div.contentdetail span').hide();
});
</script>
但是,腳本顯然只是在100個字符後關閉文本。例如,我希望它能夠繼續寫文本直到第一個時間段或空間。這可能嗎?
謝謝。
也許我把你的問題弄錯了,但是你知道String.indexOf()函數,它返回某個子串的第一次出現的索引(或者-1,如果沒有找到該部分)。例如:alert(「foobar」.indexOf(「b」))將「3」作爲「b」的索引。也許你可以用它來截斷所需位置的字符串? – Max 2009-10-22 10:38:13