2011-08-06 5 views
1

でその子孫が、私はこのコードを持っているだけで、選択した要素のテキストを取得:ドキュメントによるとないjqueryの

$('p:not(:has(iframe))').filter(function(){ 
    return $(this).text().length > 150;}) 
    .slice(0,1).parent(); 

を、.textセクションはまた、子孫のテキストを取得し、私は思っていたどのように私ができますその子孫ではなく、選択した要素のみのテキストのみを選択します。

答えて

0

これはあなたのニーズに合っていますか?

$('p:not(:has(iframe))').filter(function(){ 
    var total_length = 0; 
    for (var i=0; i<this.childNodes.length; ++i) 
     if (this.childNodes[i] instanceof Text) 
      total_length += this.childNodes[i].length; 

    return total_length > 150; 
}).slice(0,1).parent(); 

(これはあなたがDOMを横断しているとして、各ノードのクローンを作成する必要がありません)

2

これはいい方法ではありませんが...私はそれがうまくいくと思います。

$('p:not(:has(iframe))').filter(function(){ 
    var _cp = $(this).clone(); 
    var tiw = _cp.children().remove().end().text(); 

    return tiw.length > 150; 
}).slice(0,1).parent(); 

... 
関連する問題