选择没有标签的元素

时间:2018-03-17 07:10:00

标签: jquery html css css-selectors

我的HTML结构如下:

<div class="in-featuredlisting">
    <h3 class="black">
        <a href="">title</a>
    </h3>
    <p class="sub-text in-newslisting">Posted on 15 March 2018</p>  
    lorem ipsum, bla, bla, bla   
</div> 

如果有任何方法可以捕获。

  

lorem ipsum,bla,bla,bla

部分没有&#34;触摸&#34;或更改其他任何内容.in-featuredlisting

我尝试.in-featuredlisting p +,但这个没有用,因为我们没有包含元素的副本。

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤操作:

  1. 首先克隆父元素,其中显示没有标记的text
  2. 然后选择此元素的所有子元素。
  3. 现在,从中移除所有将删除具有HTML标记的元素的元素
  4. 现在,再次返回选定的元素,以便您可以引用它来获取文本(在步骤3中未删除)
  5. 最后,从父元素中获取文本,您可以进一步trim删除文本前后的空格。
  6. var el = $(".in-featuredlisting");
    var res = el.clone()    //step 1
            .children()     //step 2
            .remove()       //step 3
            .end()          //step 4
            .text();        //step 5
    console.log(res.trim());
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="in-featuredlisting">
        <h3 class="black">
            <a href="">title</a>
        </h3>
        <p class="sub-text in-newslisting">Posted on 15 March 2018</p>  
       lorem ipsum, bla, bla, bla   
    </div>

答案 1 :(得分:0)

1.使用.contents().text()一起获取div中的所有文字。

2.同时使用.not().children()

忽略它的子元素文本

3.使用$.trim()删除多余的空格。

console.log($.trim($(".in-featuredlisting").contents().not($(".in-featuredlisting").children()).text()));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="in-featuredlisting">
    <h3 class="black">
        <a href="">title</a>
    </h3>
    <p class="sub-text in-newslisting">Posted on 15 March 2018</p>  
   lorem ipsum, bla, bla, bla   
</div>