jQuery限制div中的字符而没有另一个div

时间:2014-12-22 10:09:42

标签: jquery

我想将div中的字符限制为25,但在div中我有另一个div。

这是我的代码:

<a href="#">
      Text that needs to be reduced ti 25 characters.
     <span class='span-class'>span text</span>
</a>

$('a').text(function(index, currentText) {
    return currentText.substr(0, 175);
});

但问题是,因为它在标签中,所以正在删除我的范围。

我无法修改html的结构。

由于

编辑:

这就是我想要实现的目标:

<a href="#">
      Text that needs to be red
     <span class='span-class'>span text</span>
</a>

我希望减少标记内的文本而不影响范围文本。

3 个答案:

答案 0 :(得分:1)

请务必唯一标识该元素,否则该元素将应用于该页面的所有a

var children = $('a').children()

$('a').text(function(index, currentText) {
  return currentText.substr(0, 32);
});

$('a').append(children)

此处示例:http://plnkr.co/edit/NNGY9ZZnTrQ9P7Y7egve?p=preview

答案 1 :(得分:1)

&#13;
&#13;
$("a").contents().each(function(){
 if ($.trim(this.nodeValue) != "" &&  this.nodeType == 3){
     //console.log($.trim(this.nodeValue))
     this.nodeValue = $.trim(this.nodeValue).substring(0,25)
  }
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#">
      Text that needs to be reduced to 25 characters.
     <span class='span-class'>span text</span>
</a>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

 var restrict = $("a").clone()
            .children()
            .remove()
            .end()
            .text().substr(0,2);

var children = $("ul").children();
$("ul").text(restrict).append(children)