0

次のような HTML があります。

<div class='textbox' data-title='Sometitle'>
<div class='textareaedit'>
     <p><strong>Test sample text</strong></p>
</div>
</div>

div 内にいくつかの異なる<p>タグを使用する場合もあれば、 (この例のように)内のテキストの周りにタグを使用する場合もあれば、タグを使用する場合もあります。textareaeditstrong<p>span<p>

ページのそれぞれを繰り返し処理し、そのタイトルと のタグ内にtextboxネストされたテキストを取得します。テスト用にコンソール経由で出力を提供しています。これは私の jQuery コードですが、2行目の出力はありません。<p>textareaeditconsole.log()

$('.textbox').each(function() {
    $this = $(this);
    console.log($this.attr('data-title')+ ":\n");
    $this.children('textareadit').children('p').each(function(){
        console.log($(this).html()); // not giving any output, it's blank
    });
});

私も試し$(this).text()ましたが、違いはありませんでした。この例では 内<strong>のタグ内にサンプル テキストがあると思われるかもしれませ<p>んが、テキストが の直接の子であるストロングを使用せずに同じ例を試してみましたが<p>、違いはありませんでした。テキストをキャプチャするにはどうすればよいですか?

4

5 に答える 5

2

children()関数に渡されたクラス セレクター.で、クラス名の前に a がありません。クラス名にもスペルミスがありtextareaditますtextareaedit

$this.children('.textareaedit').children('p').each(function(){
    console.log($(this).html()); // not giving any output, it's blank
});

例: http://jsfiddle.net/aWRaS/

于 2012-12-12T10:59:20.293 に答える
1

クラス名のスペルも間違っている

.children('textareadit') should be .children('.textareaedit')
于 2012-12-12T11:06:00.967 に答える
1

find()メソッドを使用して見つけることができます。次のようなことを試してください:

$this.find('.textareadit > p').each(function(){
    console.log($(this).html());
});
于 2012-12-12T10:59:58.580 に答える
1
.children('textareadit')

読む必要があります:

.children('.textareadit')

クラスを選んでいるとき

于 2012-12-12T11:01:56.773 に答える
1

.セレクターにa がありません。また、 にタイプミスがありますtextareadit。正しいものは -

$this.children('.textareaedit').children('p').each(function(){
    console.log($(this).html()); // now it prints
});

class selector最初の呼び出しに引数として渡すので、クラス セレクターがどのように機能するかchildrenを示すため、その前に を付ける必要があります。.

JSFiddle

于 2012-12-12T11:06:12.770 に答える