让我说我的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
元素的内容。
答案 0 :(得分:1)
您可以使用filter()
元素作为参数,然后small
来使用remove()
提取内容。
$('.search-result-title').contents().filter("small").remove();
&#13;
<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>
&#13;
答案 1 :(得分:1)
您可以使用此代码仅获取h3元素的文本。
document.querySelector('.search-result-title').firstChild.textContent
答案 2 :(得分:0)
使用span标记This is a test
和用户$('h3.search-result-title>span:first-child')
来选择。
答案 3 :(得分:0)
我看到你使用的是jquery所以我发现了这个:text without child
您可以这样做:
$.fn.ignore = function(sel){
return this.clone().find(sel||">*").remove().end();
};
console.log($("h3.search-result-title").ignore("small").text().trim());
这将返回'这是一个测试'
希望它有所帮助!
答案 4 :(得分:0)
您可以.filter()
使用.contents()
:
var txt = $('h3.search-result-title').contents().filter(function(){
return this.nodeType == 3;
});