Javascript 截断文本而不点击嵌套链接

Javascript 截断文本而不点击嵌套链接,javascript,jquery,truncate,Javascript,Jquery,Truncate,我有一个段落,其中嵌套了一个“阅读更多”链接 <p>Lorem ipsum blah blah blah <a href="link">Read More</a></p> Lorem ipsum诸如此类 我需要截断段落文本,并在不影响标记中任何内容的情况下以省略号结尾 我可以使用$(p).text($(p).text().substring(0,n)+'…')对文本进行截断

我有一个段落,其中嵌套了一个“阅读更多”链接

<p>Lorem ipsum blah blah blah <a href="link">Read More</a></p>
Lorem ipsum诸如此类

我需要截断段落文本,并在不影响
标记中任何内容的情况下以省略号结尾

我可以使用
$(p).text($(p).text().substring(0,n)+'…')对文本进行截断$(p.text()
抓取段落,它会包含链接并将其删除


是否有办法在不影响
的情况下,获取
的文本,然后替换为截断版本。最好不必使用任何正则表达式,也不必克隆链接并重新附加?

您可以使用。然后可以使用属性更改值

对于文本节点,nodeType属性将返回3

alert($('p').contents().filter(函数()){
返回this.nodeType==3;
})[0].textContent);
//设置新值
$('p').contents().filter(函数(){
返回this.nodeType==3;
})[0]。textContent='新文本'

Lorem ipsum等等诸如此类的废话

$(函数(){
var x=$((“p”).contents().get(0).nodeValue;//这将获取忽略其他节点的文本:
$(“p”).html(x.substring(0,5)+'…'+$(“p”).find(“a”).wrap().parent().html();//设置x并附加

您可以尝试以下脚本:

$(文档).ready(函数(){
var hrefTag=$('a').attr('href');
$('p').html(“”);
});


Lorem ipsum诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸如此类诸(如果这是重复的,请随意标记,我不确定)。看起来不错!!您介意解释一下
this.nodeType==3;
的作用吗?@Reddy我刚刚做了。请检查问题是否重复。如果没有,请尝试回答。