如何获取没有子元素文本的文本

时间:2012-11-28 21:23:30

标签: jquery

我想在我的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/

对于我的洗礼,但似乎有比他的方式更好的方法。

有什么想法吗?非常感谢!

3 个答案:

答案 0 :(得分:3)

var text = $("#textDiv").contents().filter(function() {
    return this.nodeType === 3;
}).text();

DEMO: http://jsfiddle.net/VcghZ/

答案 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/