jquery从.text()中排除一些子节点

Sur*_*cct 11 jquery

html结构看起来像这样

<div id="parent">
    parent may contain text
    <div id="child1">
       child 1 may contain text
       <script>console.log('i always contain something');</script>`
    </div>

    <div id="child2">
       child2 may contian text
    </div>    
</div> 
Run Code Online (Sandbox Code Playgroud)

我试图获取除了内容之外的每个节点的内容<script>.结果应如下所示:

    parent may contain text
    child 1 may contain text 
    child2 may contian text
Run Code Online (Sandbox Code Playgroud)

我尝试过使用($('#parent').not('div script').text(),但它不起作用

Alp*_*Alp 7

您可以通过克隆节点,删除脚本标记并检索text()值来实现:

var content = $('#parent').clone();
content.find('script').remove();
console.log(content.text());
Run Code Online (Sandbox Code Playgroud)

DEMO

您应克隆该节点,以便之后确定未更改的DOM树.


MMK*_*MMK 5

尝试这个:

($('#parent').text()).replace($('#parent script').text(),'');
Run Code Online (Sandbox Code Playgroud)

看看这个小提琴