我想显示 div 的第一行,并在末尾附加“...”,然后在单击时显示整个块删除“...”。另外,我想知道如何在第二次单击时将其切换回紧凑的单行版本。
有没有一种简单的方法可以通过 javascript 做到这一点?我使用 jQuery。
我想显示 div 的第一行,并在末尾附加“...”,然后在单击时显示整个块删除“...”。另外,我想知道如何在第二次单击时将其切换回紧凑的单行版本。
有没有一种简单的方法可以通过 javascript 做到这一点?我使用 jQuery。
我通常使用的方法是将两个版本的文本(短和长)在 HTML 中彼此相邻放置。一个是隐藏的(较长的),当您单击它时,您的 jQuery 可以在两个元素之间交换...
您可以使用 PHP 的substr()
函数来准备您的字符串...
echo substr("This is a long line of text",0,9) . '...';
// This is a...
$string = "Two birds flew over the rainbow. The second bird had a stroke.";
$shorten = substr($string, 0, strpos($string, '.')) . '...';
假设您没有任何缩写标题,这会将文本缩短为第一句。
jQuery 也很简单。
<script>
$(document).ready(function(){
$('#toggle').hide();
$('.toggle').click(function(){
$('#toggle').toggle();
});
});
</script>
<?php echo $shorten; ?>
<br /><a href="#" class="toggle">read more</a>
<div id="toggle"><?php echo $string; ?></div>
可能不是最优雅的解决方案,但应该可以工作......
div span { display:none; }
div b { font-weight:normal; }
<div>Blah blah blah blah<b>...</b> <span>blah blah blah blah blah</span></div>
jQuery("div").toggle(function() {
$(this).find("b").hide();
$(this).find("span").show();
},
function() {
$(this).find("b").show();
$(this).find("span").hide();
}).