当文本本身与包含文本的另一个元素相邻时,从jQuery元素中获取文本的好方法是什么?
在这个例子中,我想得到文本:'我想要的文字'而忽略了相邻子元素中的文字:
<span>
<a>Text I want to ignore</a>
Text I want
</span>
我的解决方案是获取<span>
标记中的所有文字,然后删除<a>
标记中的所有文字。这感觉有点尴尬,所以我想知道是否有更好的方法:
var all_the_text = $('span').text();
var the_text_i_dont_want = $('span').find('a').text();
var text_i_want = all_the_text.replace(the_text_i_dont_want, '');
答案 0 :(得分:7)
您必须转到文本节点:
var text_i_want = $("span").contents().filter(function(){
return this.nodeType === 3;
}).text();
答案 1 :(得分:5)
$("span")
.clone()
.children()
.remove()
.end()
.text();
应该这样做
给予适当的信任:) http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/
答案 2 :(得分:2)
删除标记并获取范围内容。 Working Demo
<span>
<a>Text I want to ignore</a>
Text I want
</span>
var all_the_text = $('span').find('a').remove();
alert($('span').text());