【问题标题】:JQuery: Cut off div text after 4 charactersJQuery:在 4 个字符后截断 div 文本
【发布时间】:2014-08-03 17:28:42
【问题描述】:

我只想显示 div 的前四个字符,但这似乎比需要的要困难,而且 google 也不是很有帮助。对此的不同变体似乎不起作用:

$("#div").html(this.html().substring(0,4));

我真的很想避免在其中有一个额外的变量来首先存储文本。

【问题讨论】:

    标签: javascript jquery html text


    【解决方案1】:

    .html() 使用回调,

    $('#div').html(function(i, currentHtml) {
      return currentHtml.substring(0, 4);
    });
    

    Demo

    如果 div 仅包含纯文本,您也可以在这种情况下使用 .text()

    $("#div").text(function(i, currentText) {
        return currentText.substring(0, 4);
    });
    

    参考:

    Slice vs Substring

    原来子字符串相对更快。

    JsPerf test : slice() vs substring() vs others

    【讨论】:

      【解决方案2】:

      如果 div 元素包含任何 HTML(html 元素),则 .html() 将其作为字符串返回。 Example

      注意:(这完全取决于你的div的内部内容)

      如果你想截断纯文本,你应该使用.text()而不是.html()

      试试这个:

      $("#div").text(function(){   
          return $(this).text().substring(0,4);
      });
      

      Working Fiddle

      【讨论】:

      • 是的,本例中有一些 HTML 元素,但感谢添加!
      【解决方案3】:

      试试这个:

      $("#div").html(function(){
          return $(this).html().substring(0,4)
          });
      

      它也会计算空间...如果有的话。

      像DIV有“测试四3”会给你输出“测试”

      【讨论】:

        【解决方案4】:

        为此目的使用 slice()

        $("#div").text(function(){   
            return $(this).text().slice(0,4);
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-07
          • 2011-03-09
          • 2015-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-01
          相关资源
          最近更新 更多