Php 显示div的单个句子
我想显示一个div的第一行,末尾显示“…”,然后单击显示整个块删除“…”。另外,我想知道如何在第二次单击时将其切换回紧凑的单线版本Php 显示div的单个句子,php,javascript,css,Php,Javascript,Css,我想显示一个div的第一行,末尾显示“…”,然后单击显示整个块删除“…”。另外,我想知道如何在第二次单击时将其切换回紧凑的单线版本 有没有一种简单的方法可以通过javascript实现这一点?我使用jQuery。我通常使用的方法是在HTML中将文本的两个版本(短文本和长文本)相邻放置。一个是隐藏的(较长的),当您单击它时,您的jQuery可以在这两个元素之间进行交换 您可以使用PHP的函数来准备字符串 echo substr("This is a long line of text",0,9)
有没有一种简单的方法可以通过javascript实现这一点?我使用jQuery。我通常使用的方法是在HTML中将文本的两个版本(短文本和长文本)相邻放置。一个是隐藏的(较长的),当您单击它时,您的jQuery可以在这两个元素之间进行交换 您可以使用PHP的函数来准备字符串
echo substr("This is a long line of text",0,9) . '...';
// This is a...
假设你没有任何缩写的标题,那就把课文缩短到第一句
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>
$(文档).ready(函数(){
$(“#切换”).hide();
$('.toggle')。单击(函数(){
$('#toggle')。toggle();
});
});
可能不是最优雅的解决方案,但应该可以
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();
}).
div span{display:none;}
div b{字体大小:正常;}
废话废话废话。。。废话废话废话
jQuery(“div”).toggle(函数(){
$(this.find(“b”).hide();
$(this.find(“span”).show();
},
函数(){
$(this.find(“b”).show();
$(this.find(“span”).hide();
}).
三重点称为省略号。有了这些信息,您可以轻松地运行搜索来查找jQuery elipsis插件,有很多可供选择的插件。。。我不相信它能保证一个插件…@Lix,不完全如此。如果您想要一个在表示中看起来不错的方法,那么必须使用substr()以外的其他方法。一旦达到极限,它就会切断语言。你必须提前知道你要截断的句子,并计算字符数,这样它就不会截断任何单词。只使用substr()
会在逻辑上留下一些漏洞-我同意你的看法。。。但是有一些简单的事情可以防止这种情况的发生——用空格(单词)分隔句子将防止将一个单词一分为二-如果有太多的字符,那么你就去掉另一个单词并重新计算。我唯一的观点是,并不总是需要在一个web应用程序中塞满简单的插件,这些插件可以很容易地在内部开发,以实现更个性化和更健壮。谢谢你的快速响应Lix。但按字符数截断句子的问题是,有时文本显示为两个句子。还有别的解决办法吗?@sav你能解释一下你说的两句话是什么意思吗?如果你是两句话,仍然会有一个简短的版本,当你改变文本时,会显示较长的两句话。。。我遗漏了什么吗?但是我的主要目的不是显示div的第一句话。我的目的是显示div的第一行。谢谢你的回答Marcus。但按字符数截断句子的问题是,有时文本显示为两行。还有其他的解决办法吗?我只截取周期的第一个实例。如果第一句话中有多行,我只能假设文本中有中断。在这种情况下,您可以说$shorten=substr(strip_tags($string),0,strpos(strip_tags($string),'.')代码>
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();
}).