使用jQuery动态删除元素内的文本

时间:2018-03-28 18:49:16

标签: javascript jquery html

我有以下结构:

<div class="some-class">
    Some Text Here
    <ul>
        <li class="another-class"> Main Content </li>
    </ul>
</div>

我想知道如何使用 jQuery 删除文本“ Some Text Here ”...  所以我会得到:

<div class="some-class">
    <ul>
        <li class="another-class"> Main Content </li>
    </ul>
</div>

谢谢!

4 个答案:

答案 0 :(得分:1)

另一种方法是使用属性noteType寻找textNodes

&#13;
&#13;
function isTextElement() {
  return this.nodeType === 3;
}

$('.some-class').contents().filter(isTextElement).remove();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="some-class">
  Some Text Here
  <ul>
    <li class="another-class"> Main Content </li>
  </ul>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

var $elements = $('.some-class > *').detach()
$('.some-class').empty().append($elements)

https://jsfiddle.net/dsq0fzxu/2/

特定于上面的代码示例。

采用div.some-class下的所有直接元素, 删除自由浮动文本,追加元素。

答案 2 :(得分:1)

您可以使用[contents()][1] jQuery,然后在nodeType = 3上应用过滤器,因为nodeType.TextNode值为3

有关nodeType的更多信息,请参阅here

$('.some-class').contents().filter(function(){
    return this.nodeType === 3;
}).remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="some-class">
  Some Text Here
  <ul>
   <li class="another-class"> Main Content </li>
  </ul>
</div>

答案 3 :(得分:0)

如果您只想删除文字,那么您可以执行空文本

$('.another-class').text(''); 

如果你想删除li元素,那么有文本然后在你的情况下应用类选择器并使用jquery的remove方法

$('.another-class').remove();