Javascript 如何使用jquery获取div中的特定文本 一些代码 所需内容 多余的内容 不必要的内容2

Javascript 如何使用jquery获取div中的特定文本 一些代码 所需内容 多余的内容 不必要的内容2,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我只想在这里得到“需要的内容”。因此,我必须删除脚本标记并获取所有文本,直到div.separator 如果我只从根目录(div.news)中获取未包含子元素的文本,我将解决这个问题,或者以另一种方式清理子元素 我如何处理这个问题 感谢您的关注。您可以使用contents()和filter()检索元素中的文本节点。试试这个: <div class="news"> <script type="text/javascript"> som

我只想在这里得到“需要的内容”。因此,我必须删除脚本标记并获取所有文本,直到
div.separator

如果我只从根目录(div.news)中获取未包含子元素的文本,我将解决这个问题,或者以另一种方式清理子元素

我如何处理这个问题

感谢您的关注。

您可以使用
contents()
filter()
检索元素中的文本节点。试试这个:

<div class="news"> 
       <script type="text/javascript">

           some codes

       </script>

           needed content

       <div class="seperator">

           unneeded content

       </div>

  unneeded content2

 </div>        

您可以使用
contents()
filter()
检索元素中的文本节点。试试这个:

<div class="news"> 
       <script type="text/javascript">

           some codes

       </script>

           needed content

       <div class="seperator">

           unneeded content

       </div>

  unneeded content2

 </div>        

尝试使用父
DOM
元素
.childNodes
。news
,选择索引
2

var textNodes = $('.news').contents().filter(function() {
    return this.nodeType == 3 && this.nodeValue.trim() != ''
}).get();

console.log(textNodes[0].nodeValue.trim()); // = 'needed content'
或者,在父节点
.news
.childNodes
上使用
for
循环,其中
.previousElement同级节点
.tagName
“脚本”

var节点=document.querySelector(“.news”).childNodes;
对于(var i=0;i

//一些代码
所需内容
多余的内容

尝试使用父
DOM
元素
.childNodes
。news
,选择索引
2

var textNodes = $('.news').contents().filter(function() {
    return this.nodeType == 3 && this.nodeValue.trim() != ''
}).get();

console.log(textNodes[0].nodeValue.trim()); // = 'needed content'
或者,在父节点
.news
.childNodes
上使用
for
循环,其中
.previousElement同级节点
.tagName
“脚本”

var节点=document.querySelector(“.news”).childNodes;
对于(var i=0;i

//一些代码
所需内容
多余的内容
使用获取所有节点,包括文本节点。然后使用
.not($('*')
排除元素节点:

console.log($('.news').contents().not($('*')).text().trim())//所需内容

一些代码
所需内容
多余的内容
使用获取所有节点,包括文本节点。然后使用
.not($('*')
排除元素节点:

console.log($('.news').contents().not($('*')).text().trim())//所需内容

一些代码
所需内容
多余的内容

写一个答案:)你能把需要的内容包装成一个
(或任何标签)并给它一个ID或类吗?使用
.text()
将更容易找到目标。谷歌上的一些搜索将为您提供这样一个基本问题的答案;)。写一个答案:)你能把需要的内容包装成一个
(或任何标签)并给它一个ID或类吗?使用
.text()
将更容易找到目标。谷歌上的一些搜索将为您提供这样一个基本问题的答案;)。非常感谢这很好,但有时会出现问题,脚本和div.separator之间可能不止一段。所以这取决于例如needcontent
needcontent2。在这种情况下,这个jquery将只获得第一个needcontent,但我也需要第二个。有没有办法说get text till div.spereator my friend?要做到这一点,您可以使用从
text
创建一个包含所有返回节点值的数组,并使用
join()
创建一个字符串,类似这样的内容:非常感谢这很好,但有时有一个问题,脚本和div.separator之间可能不止一段。所以这取决于例如needcontent
needcontent2。在这种情况下,这个jquery将只获得第一个needcontent,但我也需要第二个。有没有办法说get text till div.spereator my friend?要做到这一点,您可以使用从
text
创建一个包含所有返回节点值的数组,并使用
join()
创建一个字符串,类似这样:这对我非常有用,谢谢。只是我也想问一些重要的问题。我现在更新问题。在这种情况下,有什么方法可以清除“不需要的内容2”吗?同样地,我不能相信这有这么少的+投票,尽管它很可能在堆栈溢出中大量复制。。我第一次使用
contents()
现在,正如建议的那样,与
not($('*')
一致,这真是太棒了!非常感谢。这对我很有用,谢谢。只是我也想问一些重要的问题。我现在更新问题。在这种情况下,有什么方法可以清除“不需要的内容2”吗?同样地,我不能相信这有这么少的+投票,尽管它很可能在堆栈溢出中大量复制。。我第一次使用
contents()
现在,正如建议的那样,与
not($('*')
一致,这真是太棒了!非常感谢。