1

私は現在、以下を持っています

<div class ="parent">
  <div class="inner">Hello
    <div>Goodbye</div>
  </div>
</div>

<div class ="parent">
  <div class="inner">Hello
    <div>Goodbye</div>
  </div>
</div>

私は現在、$(div.parent).each(function(index,item)完全に機能する各親を反復処理するために使用しています。

私の問題は、こんにちはという単語を選択する必要があることです。私は現在使用して$(item).text()いますが、問題であるHelloGoodByeを常に返しています。他のdivは無視する必要があります。

どんな助けでも感謝します。

4

4 に答える 4

1

jQuery.text()メソッドを使用する代わりに、childNode探しているテキストノードになる最初のものを見つけることをお勧めします。

​var divs = document.getElementsByClassName('inner'),
    i = 0;
for (i = divs.length; i--;) {
  console.log(divs[i].childNodes[0]);   
}

また

var divs = $('.inner');
divs.each(function() {
  console.log(this.childNodes[0]);
});

childNodesこのメソッドは jQuery によって認識されないことに注意してください。

于 2012-08-08T15:53:39.157 に答える
0

これは、各要素のクローンを作成し、不要なdivを削除してから、テキストを取得することで実現できます。

$('div.parent div.inner').each(function(index,item) {
    $this = $(item).clone();
    $this = $this.find('div').remove();
    $this.text();
});​

上記のコードとHTMLが動作しているJSフィドルは次のとおりです。http://jsfiddle.net/L8T7s/

于 2012-08-08T15:31:16.667 に答える
0

このテーマについては、これまでにさまざまな適切なソリューションで説明してきました。.text()を使用して、子タグにネストされていないテキストのみを取得する

于 2012-08-08T15:26:44.277 に答える
0

試す

$('div.parent').not('.parent .inner div').each(function(index,item)

交互に

$(div.parent:not('.inner div').each(function(index,item)

http://api.jquery.com/not/

于 2012-08-08T15:21:02.020 に答える