假设我有一个文字:
<p> hello world! </p>
我正在使用一个在5个单词后剪切文字的功能并添加“...显示更多”
我希望结果如下:
你好......显示更多
由于<p>
标签,我得到的是此输出:
你好......显示更多
我在检查元素时看到的是:
<p> hello </p> ...show more
我必须提到文字可以是<p>
或不是。
有没有办法解决这个问题?
有没有办法在<p>
标签内插入添加的文字?
我需要提一下,我需要<p>
标签,我不能使用条带标签功能。
谢谢, 暗
答案 0 :(得分:1)
你是说这个吗?
var text = "<p>hello world</p>";
var res = "<p>" + text.substring(3, 8) + " ...show more</p>";
结果是:
<p>hello ...show more</p>
答案 1 :(得分:1)
我看到它的方式,你有两个选择:
.split()
字符串按空格(假设空格分隔单词)然后切片第一个(最多)5个元素。如果大于5个元素,请添加“...阅读更多”;如果没有,这是不必要的。(?!(?:[^\b]+?[\b\s]+?){5})(.*)$
作为模式) 话虽如此,这就是我对字符串拆分的意思:
function readMore(el){
var ary = el.innerHTML.split(' ');
el.innerHTML = (ary.length > 5 ? ary.slice(0,5).join(' ') + '... read more' : ary.join(' '));
}
var p = document.getElementById('foo');
readMore(p);
当然,为了本演示的目的,假设<p id="foo">Hello, world! How are you today?</p>
(这将导致<p id="foo">Hello, world! How are you...read more</p>
)
答案 2 :(得分:0)
$('p').text($('p').text().replace('world!', '... show more'));