jquery remove() - 结果text()仍包含已删除的元素

时间:2018-04-06 17:12:25

标签: jquery

我错过了jQuery remove()的东西。 我的<label>包含我要删除的无关文本:

<label>
  <span class="removeme">Horrible Text</span>
  Nice Text
</label>

$("label").remove(".removeme").text()

结果仍然显示&#34;可怕的文字尼斯文字&#34; - 是什么赋予了? jsfiddle

3 个答案:

答案 0 :(得分:1)

要执行此操作,您需要使用.find().end()

$("div").html($("label").find(".removeme").remove().end().text());
label {display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<label>
  <span class="removeme">Horrible Text</span>
  Nice Text
</label>

<div>Result</div>

答案 1 :(得分:0)

remove()会返回已删除的元素(如果有),因此text()仍然可以正常工作,即使它不在DOM中。

答案 2 :(得分:0)

$("label").text('')

此代码将用空字符串替换标签文本,这意味着它将有效删除内部的所有文本。 .remove()实际上删除了您指定的整个元素。如果您要做的只是清空文本,那么请使用我的建议。