我有以下结构:
<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>
谢谢!
答案 0 :(得分:1)
另一种方法是使用属性noteType
寻找textNodes
:
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;
答案 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();