如何在没有特定子元素的div中获取内容

时间:2015-12-23 12:17:33

标签: javascript jquery html css phantomjs

<div class="news"> 
    i need this content

   <figure class="summary">
     i dont need this content
    </figure>

 </div>

我想得到&#34;我需要这些内容&#34;在班级.news但没有&#34;我不需要这个内容&#34;在班级.summary

$("div.news").not("figure.summary").text()

我尝试了这个jquery,但仍然在图标中获取文字。

5 个答案:

答案 0 :(得分:4)

&#13;
&#13;
alert($("div.news").contents().not("figure.summary").text());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="news"> 
    i need this content

   <figure class="summary">
     i dont need this content
    </figure>

 </div>
&#13;
&#13;
&#13;

您应该使用contents()来包含textNodes:

$("div.news").contents().not("figure.summary").text()

如果您只想获取textNodes,而不是按特定类,类型等过滤掉......:

$("div.news").contents().not("div.news *").text()

http://api.jquery.com/contents/

了解有关.contents()的详情

答案 1 :(得分:2)

您可以使用.contents()获取文本节点,然后您可以.filter()它们并执行所需的操作。

var text = $('.news').contents().filter(function() {
  return this.nodeType == 3;
}).text();

snippet.log(text)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<div class="news">
  i need this content

  <figure class="summary">
    i dont need this content
  </figure>

</div>

答案 2 :(得分:0)

你应该尝试这个:

var element = $(".news");
element = element.children().remove();
var text = element.html();

首先在变量中取父元素:

var element = $(".news");

从父母那里删除子女:

element = element.children().remove();

现在阅读父母形式:

var text = element.html();

答案 3 :(得分:-1)

<div class="news"> 
    <span class="content">i need this content</span>

   <figure class="summary">
     i dont need this content
    </figure>

 </div>

然后:

$(".content").text();

答案 4 :(得分:-1)

HTMLDivElement HDEMI =(HTMLDivElement)myHTMLDocument.getElementByName("news");
Out_OutputMemberID = Convert.ToString(
                      ((mshtml.IHTMLDOMNode)(HDEMI.firstChild).nodevalue);