1

可能重复:
使用 jQuery 删除文本

我想从 a 中删除文本div,但其中div包含其他节点。

如果我使用$("#hwiTestimonial").text("");它也会删除<br/><div>。我怎样才能只指定删除文本,没有任何节点?

<div id="hwiTestimonial">
    " Bla bla" 
    <br/>
    <div>....</div>
</div>
4

2 回答 2

12

您可以过滤元素的内容以仅保留文本节点:

$("#hwiTestimonial").contents().filter(function () {
    return this.nodeType === 3; // Text nodes only
}).remove();

这是一个工作示例

于 2012-11-15T11:01:57.683 回答
1

您可以使用其中任何一种

$("#hwiTestimonial")
  .contents()
  .filter(function() {
    return this.nodeType == Node.TEXT_NODE;
}).remove();

或者您也可以将其用于旧浏览器支持

$("#hwiTestimonial").contents().filter(function () {
    return this.nodeType === 3; // Text nodes only
}).remove();
于 2012-11-15T11:06:21.133 回答