2

可以说我有如下的html:

<h3 class="search-result-title">
            This is a test
            <small class="search-result-subtitle">
                Some more explanation
            </small>
        </h3>

如何在This is a test 没有 的情况下过滤文本small

编辑:我将它与 symfony Dom Crawler 一起使用。

所以我有filter(a. h3 search-result-title);但我不想要元素的内容small

4

5 回答 5

1

您可以使用此代码仅获取 h3 元素的文本。

document.querySelector('.search-result-title').firstChild.textContent
于 2015-12-08T16:23:07.513 回答
1

filter()您可以通过将small元素作为参数然后使用它来提取内容remove()

$('.search-result-title').contents().filter("small").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3 class="search-result-title">
   This is a test
   <small class="search-result-subtitle">
      Some more explanation
   </small>
 </h3>

于 2015-12-08T16:20:49.763 回答
0

您可以.filter()使用.contents()

var txt = $('h3.search-result-title').contents().filter(function(){
    return this.nodeType == 3; 
 });
于 2015-12-08T16:24:28.913 回答
0

用spanThis is a test标签和用户$('h3.search-result-title>span:first-child')选择。

于 2015-12-08T16:18:32.470 回答
0

我看到您正在使用 jQUery,所以我发现了这个:没有孩子的文本

你可以这样做:

$.fn.ignore = function(sel){ return this.clone().find(sel||">*").remove().end(); }; console.log($("h3.search-result-title").ignore("small").text().trim());

这将返回“这是一个测试”

希望能帮助到你 !

于 2015-12-08T16:20:39.500 回答