是否可以对字符串进行子串,但保持整个字符串隐藏?

时间:2014-01-17 17:37:14

标签: javascript jquery html string substr

我正在尝试将字符串的可见长度减少到大约25个字符。我想在页面上保留整个字符串。隐藏当然。

<span>This message is 34 characters long</span>

$("span").text(function(index, text) {
    return text.substr(0, 25);
});

将返回

This message is 34 charac

我希望它写在哪里此消息是34 charac 但隐藏其余字符,以便稍后我可以使用 .show()或其他内容显示它们其他

6 个答案:

答案 0 :(得分:3)

将其存储在jQuery的data()

$("span").text(function(index, text) {
    $(this).data('txt', text);
    return text.substr(0, 25);
});

稍后你可以做到

$("span").text(function() {
    return $(this).data('txt');
});

答案 1 :(得分:1)

您可以将整个字符串写入其自己的html元素,该元素的样式为display:none。您也可以将数据属性添加到span标记中。

答案 2 :(得分:0)

$("span").html(function(index, text) {
    return text.substr(0,25) + '<span style="display:none">' + text.substr(25) +'</span>';
});

答案 3 :(得分:0)

将字符串添加到数据属性:

<span data-text="This message is 34 characters long"></span>

$("span").text(function(index, text) {
  return $(this).data('text').substr(0, 25);
});

Demo

答案 4 :(得分:0)

您可以使用CSS属性: 选择保存字符串的div,如下所示

  <div>My String</div>
  <style>
  div{
     width: 50px;
     overflow: hidden;/* this will hide all the content that surpass the width */
  }
  </style>

答案 5 :(得分:0)

我会将不需要的部分包装在一个隐藏的范围内,所以我可以在之后使用.toggle()

$('span').html(function(index, oldHtml) {
        return oldHtml.substring(0,25) + '<span class="toggleHidden">' + text.substr(25) + '</span>';
});

$('.toggleHidden').toggle();

请注意,使用.html()代替.text()作为第一个允许我将HTML元素设置为子元素。