截断文本而不点击嵌套链接
Truncate text without hitting nested link
我的段落嵌套了一个阅读更多链接。
<p>Lorem ipsum blah blah blah <a href="link">Read More</a></p>
我需要截断段落文本并以省略号结束它,而不会影响 <a></a>
标记中的任何内容。
我可以使用$(p).text($(p).text().substring(0,n)+'...');
截断文本,但当然,如果我使用$(p).text()
抓取段落,它将包含链接并将其删除。
有没有办法抓取,然后用截断的版本替换<p>
的文本,而不影响</a>
.最好不必使用任何正则表达式或克隆链接并重新附加它?
您可以使用
nodeType
执行类似操作。然后,您可以使用textContent
属性更改值。
对于文本节点,nodeType 属性将返回 3。
alert($('p').contents().filter(function() {
return this.nodeType == 3;
})[0].textContent);
//set new value
$('p').contents().filter(function() {
return this.nodeType == 3;
})[0].textContent = 'New text ';
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<p>Lorem ipsum blah blah blah <a href="link">Read More</a></p>
$(function() {
var x = $("p").contents().get(0).nodeValue; // This will grab the text ignoring the other nodes:
$("p").html(x.substring(0, 5) + '...' + $("p").find("a").wrap("<p>").parent().html()); // Setting x and appending the <a> html
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Lorem ipsum blah blah blah <a href="link">Read More</a>
</p>
您可以尝试以下脚本:
$(document).ready(function () {
var hrefTag = $('a').attr('href');
$('p').html('<a href="' + hrefTag + '">Read More</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Lorem ipsum blah blah blah <a href="link">Read More</a></p>
相关文章:
- 截断文本而不点击嵌套链接
- 如何使用嵌套的 React 组件从“链接页面”的顶部开始
- 页面重新加载后,指向嵌套资源的链接将丢失活动类
- 这个promise嵌套可以改为链接吗
- 将多个链接表映射到嵌套的JQuery手风琴
- 如何使 jquery 嵌套选项卡链接工作
- 嵌套手风琴不会以 h2 作为链接关闭
- 有没有更简单的方法可以为不同的选择器链接不同的 jQuery 操作,然后嵌套 $.when
- 如何使用vanilla Javascript识别无序和/或嵌套列表序列中的上一个/下一个链接
- JS:用另一个单词替换链接.嵌套引号+转义码
- 通过字符串键获取到嵌套对象的链接
- 防止从嵌套链接展开/折叠
- Ajax请求链接/嵌套
- 使用jquery在嵌套列表中选择所有未链接的项目
- 用嵌套/链式保存解析无响应
- 如何禁用嵌套ul中的所有链接,除了最低级别的链接
- 如果我插入到嵌套出口的链接,Ember网站就会崩溃
- 根据在其中单击的链接查找嵌套的ul是哪个子元素
- 防止嵌套标签链接,但更改复选框状态
- jQuery排序不能在嵌套链接上工作