-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 に答える