使用jQuery或纯JavaScript的html子串

时间:2017-11-30 10:11:26

标签: javascript jquery html substring

我目前遇到了问题。我有一个包含html的div。但是如果div中的html太长,我希望它缩短并最后添加三个点。现在用纯文本,这将没有问题。用html我的问题是这个。让我说我有

<div>
    Some <a href="someurl">LinkText</a> and a 
    <span class="this-class">special formatting that's also <b>bold</b></span>
</div>

现在,如果我用

实现这个
$(theSelector).html($(theSelector).html().substring(0,50));

会导致这样的事情(我没有计算确切的长度;))

<div>
    Some <a href="someurl">LinkText</a> and a 
    <span class="this-

所以我最终会得到腐败的HTML。解决这个问题的简单方法就是使用文本而不是html,但我想保留格式。任何人都可以想到一种方法可以很好地缩短它,但也可以正确地关闭所有标签吗?

1 个答案:

答案 0 :(得分:0)

尝试这样,使用正则表达式

var regex = /(<([^>]+)>)/ig
var html = jQuery("#container").html();
var result = html.replace(regex, "");
console.log(result.substr(0,50));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
    Some <a href="someurl">LinkText</a> and a 
    <span class="this-class">special fomatting that's also <b>bold</b>
    </span>
</div>