-1

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

对于我的解决方案,但似乎有比他的方式更好的方法。

有任何想法吗?非常感谢!

4

3 回答 3

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

演示:http: //jsfiddle.net/VcghZ/

于 2012-11-28T21:27:30.377 回答
2

尝试.contents单独使用和获取文本节点。见下文,

演示:http: //jsfiddle.net/pyaAN/

    var result = '';
    $('#textDiv').contents().each(function () {
        if (this.nodeType == 3 && $.trim($(this).text()).length > 0) {
            result += this.nodeValue;
        }
    });
于 2012-11-28T21:28:28.270 回答
2

尝试使用

$('#textDiv').click(function(){

    alert($(this).contents().filter(function() {
        return this.nodeType === 3;
      }).text())
});​

正如这个小提琴:http: //jsfiddle.net/jQf6d/

于 2012-11-28T21:29:27.210 回答