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

标签 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> 

我正在尝试获取除<script>之外的每个节点的内容。结果应该如下所示:

    parent may contain text
    child 1 may contain text 
    child2 may contian text

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

最佳答案

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

var content = $('#parent').clone();
content.find('script').remove();
console.log(content.text());

DEMO

您应该克隆该节点,以确保之后 DOM 树不变。

关于jquery 从 .text() 中排除一些子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270607/

相关文章:

jquery - Bootstrap 响应式图像布局 - 调整大小

javascript - 需要JS : Handling jQuery conflicts with shim and non AMD loaded scripts

javascript - 将 json 数组存储在 jqgrid 的隐藏列中

jquery - float 的 div 没有正确换行

jquery - 将 div 在其他输入和 div 中垂直和水平居中

javascript - jQuery 热键只工作一次

javascript - 使用 document.currentScript 将数据附加到 div

javascript - 跨域资源共享 : No 'Access-Control-Allow-Origin' header - but php sets header file

JQuery 将这个和另一个结合在一起

javascript - 使用 jQuery 获取未附加元素的 CSS