0

複数の(段落)を含めることができるdivクラスがあります。しかし、最後の段落だけを取得して、そのテキストを処理したいと考えています。textareaeditp

私のHTMLは次のようなものです:

<div class="textareaedit">
<p>  </p>
<p>  </p>
</div>

そして私のJavaScript:

$thisinput = $('forminput');

$taedit = $('.textareaedit');
    var $target = $taedit.children(); //in case there is more than one <p> here

  while( $target.length ) {
  $target = $target.children();
   }            

  $target.end().text($thisinput.val()) ;

このコードは、ユーザーがフォーム要素にフォーカスを置いたままにするたびにトリガーされますforminput。ユーザーのテキストを に移動したい$taedit。しかし、$taeditたまたま複数の段落がある場合、ユーザーが に入力するたびに、そのforminput$taeditのテキストが複製されます。

例:$taeditが 1 つしかない場合p、ユーザーが を入力するThis is my textと、$taedit次のようになります。

This is my text

しかし、$taeditたまたま が 2 つpある場合、ユーザーが入力するとThis is my text(1 回だけ!)、$taedit次のようになります。

This is my text
This is my text

ユーザーがもう一度入力すると、2 倍になります。

This is my text
This is my text
This is my text
This is my text

whileループが原因で何かが起こっているに違いないことは理解していますが、理解できないのは、1$target.end()回しか呼び出していないということです...したがって、テキストは最後の段落にのみ追加する必要がありますか? 私の目的は、いくつあっても重複しないようにするpことです。

4

1 に答える 1

1

なぜwhileループが必要なのかわかりませんか?whileループと最後のステートメントを次のように置き換えることができます。

$target.last().text($thisinput.val());
于 2013-01-20T11:23:02.947 に答える