Sto sviluppando una pagina ASP classica che estrae parte del contenuto da un database e crea un collegamento Leggi altro dopo i primi 100 caratteri come segue;Uso della sottostringa javascript() per creare un altro collegamento di lettura
<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>
Tuttavia, lo script ovviamente taglia il testo dopo 100 caratteri. Preferibilmente mi piacerebbe che continuasse a scrivere testo fino al primo periodo o spazio, per esempio. È possibile farlo?
Grazie.
Forse ho sbagliato la tua domanda, ma tu conosci la funzione String.indexOf() che restituisce l'indice della prima occorrenza di una certa sottostringa (o -1 se la parte non è stata trovata). Esempio: alert ("foobar" .indexOf ("b")) allerta "3" come indice di "b". Forse puoi usare questo per troncare la stringa nella posizione desiderata? – Max