我想在我的div中获取文本,而不是在div div中获取文本。
我有
HTML
<div id='textDiv'>
texts I want to get
<span id='textChildDiv'>
texts I don't want
</span>
</div>
jquery的
$('#textDiv').click(function(){
alert($(this).text()) //will get 'texts I want to gettexts I don't want'
//I only want 'texts I want to get' to be returned.
})
我找到了
http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/
对于我的洗礼,但似乎有比他的方式更好的方法。
有什么想法吗?非常感谢!
答案 0 :(得分:3)
var text = $("#textDiv").contents().filter(function() {
return this.nodeType === 3;
}).text();
答案 1 :(得分:2)
尝试使用.contents
并单独获取文本节点。见下文,
DEMO: http://jsfiddle.net/pyaAN/
var result = '';
$('#textDiv').contents().each(function () {
if (this.nodeType == 3 && $.trim($(this).text()).length > 0) {
result += this.nodeValue;
}
});
答案 2 :(得分:2)
尝试使用
$('#textDiv').click(function(){
alert($(this).contents().filter(function() {
return this.nodeType === 3;
}).text())
});
就像这个小提琴一样:http://jsfiddle.net/jQf6d/