只需删除普通文本,但不删除span元素

时间:2015-12-07 13:04:16

标签: javascript jquery

我想要清除“普通文本”,但没有使用glyphicon。

重要的代码部分及其结果:

  1. $("#btn_test").html()会给我:

    "<span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span> Speichern &amp; schließen"

  2. $("#btn_test").text()会给我:

    " Speichern & schließen"

  3. 我只想删除文字“" Speichern & schließen",没有.replace(...) - 函数(因为文字是动态的)。

    我尝试了$("#btn_test").text(""),但这也会清除我的span元素。

    谢谢。

    更新('可能重复'): 是的,这是像here这样的问题,但不是Chris Davis的答案,它解决了我的问题。

2 个答案:

答案 0 :(得分:4)

删除文本节点,例如:

$('#btn_test').contents().filter(function(){
  return this.nodeType === 3;
}).remove();

或者更简单,如果它始终是最后一个:

$('#btn_test').contents().last().remove();

-jsFiddle-

答案 1 :(得分:2)

最简单的方法是将文本包装在span中 - 然后删除此文本变得微不足道。

$(document).ready(function() {
	$('#btn_test .text').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn_test">
  <span class="glyphicon glyphicon-floppy-disk"
        aria-hidden="true"></span> 
  <span class="text">Speichern &amp; schließen</span>
</button>

jsFiddle link