Some title text Some description"> Some title text Some description"> Some title text Some description" />

ブレークタグの後、div内のテキストを取得するための正しいjqueryセレクタの記述

私は以下のフォーマットでいくつかのコードをページ全体に繰り返しています:

<div class="video-description-secondary" style="display:block;">
  

Some title text


Some description text </div>

ここに私が実行している問題があります:jqueryセレクタを使用して、descriptionテキスト(brタグの後で閉じdivタグの前)を取得したいとします。テキスト自体が内部タグではないので、そのテキストを取得するために適切なjqueryセレクタを書く方法がわかりません。そのテキストに対していくつかのコードを適用して、より多くの/より少ないリンクを適切に実装できるようにする必要があります。

どんな助けも素晴らしいだろう。

3

2 答え

このようなものがあなたのために働くだろうか?技術的には、中断後のものとは対照的に、子タグ内にないすべてのものを取り込みます。

http://jsfiddle.net/aMKuY/2/

 var foo = $('.video-description-secondary').clone().children().remove().end().text();

代替ソリューション

これにより、返される内容をわずかに詳細に制御できます。すべてのテキストノードを取得し、最後のノードを取得します。

http://jsfiddle.net/aMKuY/3/

var textNodes = $('.video-description-secondary').contents().filter(function() {
    return this.nodeType == Node.TEXT_NODE;
});

var val = textNodes[textNodes.length - 1].nodeValue;
3
追加された

セレクタを書くことはできますが、デザインを再評価する必要があります。テキストをいくつかのマークアップで囲み、それを代わりに選択するほうがはるかに簡単です(それがそのためにあります)。

だからこれは良いです:

<div class="video-description-secondary" style="display:block;">
  

Some title text


Some description text </div>

あなたは次のようにアクセスできます:

$('.special').text();

とても清潔です。

1
追加された
@ starwedの真理ですが、あなたが言及した制約は指定されていませんでした。これはまだこの問題に直面している人にとっては最も簡単な解決策であるかもしれません。
追加された 著者 Dane O'Connor,
jQueryは、コードの作成者がhtmlコンテンツを制御しない場合によく使用されます。例えば、私は上記のコードがビデオダウンロードサイトとインターフェイスするfirefox拡張モジュールで使用されていることを簡単に想像することができます。
追加された 著者 starwed,