Javascript 试图缩短可能包含链接的正文

Javascript 试图缩短可能包含链接的正文,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正试图找出一种方法来缩短可能包含链接的文本体 <div class="bio"> Banjo my soundcloud is <a href="http://soundcloud.com/username">http://soundcloud.com/username</a> Echo Park kale chips blog, cred pitchfork keffiyeh mixtape tumblr photo booth artis

我正试图找出一种方法来缩短可能包含链接的文本体

<div class="bio">
    Banjo my soundcloud is <a href="http://soundcloud.com/username">http://soundcloud.com/username</a>
    Echo Park kale chips blog, cred pitchfork keffiyeh mixtape tumblr photo booth artisan helvetica
    meggings fashion axe roof party. Aesthetic biodiesel direct trade butcher, iPhone occupy before
    they sold out trust fund mumblecore cornhole food truck DIY narwhal freegan. Salvia try-hard
    freegan, Brooklyn Marfa craft beer fanny pack dreamcatcher High Life irony sriracha. Mumblecore
    Terry Richardson ethnic, pop-up tattooed sartorial 3 wolf moon banjo biodiesel church-key semiotics
    polaroid Etsy Schlitz hashtag. Wes Anderson gluten-free lomo brunch, raw denim plaid Schlitz salvia. 
</div>

班卓琴我的声音是云
Echo Park羽衣甘蓝芯片博客,cred pitchfork keffiyeh混音带tumblr摄影棚工匠helvetica
美金时尚斧头屋顶派对。美学生物柴油直接交易屠夫,iPhone占领前
他们卖掉了信托基金mumblecore cornhole食品卡车DIY独角鲸freegan。鼠尾草努力
弗里根,布鲁克林马法工艺啤酒芬尼包捕梦人高生活讽刺sriracha。呢喃核
特里·理查森种族,弹出式纹身裁缝3狼月亮班卓琴教堂关键符号
宝丽来Etsy Schlitz标签。Wes Anderson无麸质lomo早午餐,生牛仔布格纹鼠尾草。
起初,我试图通过设置一个截止字符数来缩短文本正文,在此之后,我将插入一个“更多”链接,将其余文本放在一个跨距中,并隐藏跨距,直到单击“更多”链接。但是,如果用户决定将链接放置在错误的位置,则插入“更多”链接会破坏用户放置的锚定标记

这是我为这个不起作用的问题找到的解决方案:


缩短可能包含锚定标记的文本体的好方法是什么?

我能想到的最简单的方法是动态创建文本体的纯文本版本,它将作为预览显示。这样,您就不会在删除任何标记时遇到问题,因为您将只处理纯文本


可用于从字符串中删除所有HTML标记。通过这种方式,您可以创建纯文本预览,并在用户单击“更多”链接时显示实际内容和HTML标记。我能想到的最简单的方法是动态创建文本正文的纯文本版本,这将作为预览显示。这样,您就不会在删除任何标记时遇到问题,因为您将只处理纯文本


可用于从字符串中删除所有HTML标记。通过这种方式,您可以创建一个纯文本预览,并在用户单击“更多”链接时显示实际内容和HTML标记。没错,jquery演示代码不起作用,但演示确实起作用了。我必须修理一些东西,但这里有一把小提琴,你可以用它演奏。我也用了你的文字信息

$(文档).ready(函数(){
var orgContent=$('.bio').html();
var txtContent=$('.bio').text().substr(0,50)+“…更多”;
$('.bio').html(txtContent);
$(“正文”)。在(“单击”上,“#morelink”,函数(){
$('.bio').html(orgContent);
$('less').appendTo('bio');
});
$(“body”)。在(“click”上,“#lesslink”,function(){
$('.bio').html(txtContent);
});
});

没错,jquery演示代码不起作用,但演示确实起作用了。我必须修理一些东西,但这里有一把小提琴,你可以用它演奏。我也用了你的文字信息

$(文档).ready(函数(){
var orgContent=$('.bio').html();
var txtContent=$('.bio').text().substr(0,50)+“…更多”;
$('.bio').html(txtContent);
$(“正文”)。在(“单击”上,“#morelink”,函数(){
$('.bio').html(orgContent);
$('less').appendTo('bio');
});
$(“body”)。在(“click”上,“#lesslink”,function(){
$('.bio').html(txtContent);
});
});

放置链接的“错误”位置是什么?靠近文本被截断的地方?是的,假设你有“你好,我的名字是facebook.com/patrick”>patrick和我喜欢任何东西”,然后你决定在30个字符后(或位于锚定标记内的某个地方)将其截断,这会弄乱标记。你真的必须缩短文本吗?你不能限制div的宽度或高度吗(隐藏溢出),并在点击更多链接时将其展开?这是一个非常有趣的观点。我将试一试,明天再做一个提琴。什么是放置链接的“错误”位置?靠近文本被切断的位置?是的,假设你有“你好,我的名字是facebook.com/patrick”>patrick,我喜欢任何东西”如果您决定在30个字符后(或锚定标记中的某个位置)将其截断,则会弄乱标记。您真的必须缩短文本吗?您不能限制div的宽度或高度(隐藏溢出),并在点击更多链接时将其展开?这是一个非常有趣的观点。我将试一试,并在明天演奏小提琴。
$(document).ready(function() {
    var orgContent = $('.bio').html();
    var txtContent = $('.bio').text().substr(0, 50) + '... <a id="morelink">more</a>';
    $('.bio').html(txtContent);
    $("body").on("click", '#morelink', function(){
        $('.bio').html(orgContent);
        $('<a id="lesslink"> less</a>').appendTo('.bio');
    });
    $("body").on("click", '#lesslink', function(){
        $('.bio').html(txtContent);
    });
});