在jQuery中临时删除

时间:2015-06-04 10:10:15

标签: jquery

<div class="stuff">
<span class="to_hide"> blah </span>
<span id="permanent"> like glue </span>
</div>

我想抓住$(".stuff").text(),但我不是#tmp的文字

我的工作正常$(".to_hide").remove()

但我不希望删除操作对页面本身产生影响。如果我删除它或分离,我需要知道元素的位置(假设许多.to_hide个节点)

如何在忽略.text()

的同时使用.to_hide

3 个答案:

答案 0 :(得分:2)

一种简单的方法是使用克隆

&#13;
&#13;
var text = $(".stuff").clone().find('.to_hide').remove().end().text();
console.log(text)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="stuff">
  <span class="to_hide"> blah </span>
  <span id="permanent"> like glue </span>
</div>
&#13;
&#13;
&#13;

您也可以这样做 - 但是如果您有复杂的系统和文本节点,它们是stuff的直接后代,则可能无法正常工作

&#13;
&#13;
var text = $(".stuff *").not('.to_hide').text();
console.log(text)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="stuff">
  <span class="to_hide"> blah </span>
  <span id="permanent"> like glue </span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你需要制作一个克隆然后从div

获取文本
var clone =$(".stuff").clone();
clone.find(".to_hide").remove();
var text= clone.text()
console.log(text);

jsBin Example

答案 2 :(得分:0)

另一种方法是从整个文本块中减去要排除的文本。

type Page struct {
    PageId string                 `bson:"pageId",json:"pageId"`
    Meta   map[string]interface{} `bson:"meta",json:"pageId"`
}

最终,解决方案的复杂性将取决于您希望运行的DOM。此外,您可以通过依靠DOM库来获得更多收益。