我有一个事实框,其内容可以从p, li or img tags
变化,并且内容的长度也可能有所不同。因此,我试图制作一个仅显示部分内容的功能,并且提供了一个用于"read more"
的按钮。想做出更多选择
但我的问题是,当我使用子字符串来计算从哪里开始,以及在哪里停止,并将按钮“阅读更多”,但它采取了HTML文本和纯文本,但我只需要纯文本。
所以我的问题是:我如何删除所有的HTML文本,只是得到纯文本,所以它不关心什么样的内容是在我的事实框中,它仍然只会显示一部分文本,并隐藏休息,带有可显示更多选项的按钮。 ??
我的函数,只显示部分关闭事实框:
$(document).ready(function() {
var showChar = 100;
var ellipsestext = "...";
var moretext = "Read more";
var lesstext = "less";
$('.showMoreLess').each(function() {
var content = $(this).html();
if (content.length > showChar) {
var c = content.substr(0, showChar);
var h = content.substr(showChar - 1, content.length - showChar);
var html = c + '<span class="moreellipses">' + ellipsestext + ' </span><span class="morecontent"><span>' + h + '</span> <a href="" class="morelink">' + moretext + '</a></span>';
$(this).html(html);
}
});
$(".morelink").click(function() {
if ($(this).hasClass("less")) {
$(this).removeClass("less");
$(this).html(moretext);
} else {
$(this).addClass("less");
$(this).html(lesstext);
}
$(this).parent().prev().toggle();
$(this).prev().toggle();
return false;
});
});
和我的HTML和agian可能改变它所包含的内容
<div class="fact-banner">
<h4 class="title">fact headline</h4>
<div class="showMoreLess">
<div class="text">
<p>blablabla</p>
<p>blablabla</p>
<p>blablabla</p>
<p>blablabla</p>
</div
<div class="img">
<div class="image-banner text" style="padding-top: 0;margin-top:0">
<div class="image">
<img src="/bla.jpg" alt="bla" />
</div>
<div class="title">
<p>imageText</p>
</div>
</div>
</div>
<div class="text" style="padding-top: 0; padding-bottom: 0">
<a href="linkToRelevantsite"> Relevant site to the article </a>
</div>
</div>
我希望我意义:)
这一个覆盖非常好前一个问题: [http://stackoverflow.com/questions/822452/strip-html-from-text-javascript]( http://stackoverflow.com/questions/822452/strip-html-from-text-javascript) – singleTrackVale