0

after() メソッドを使用して、jQuery のクラスの後に eeror メッセージ div を追加しようとしています。

私の元の HTML コードは次のようなものです。

<div class="input-group">
      <span class="input-group-addon"> Name</span>
      <input type="text" name="myname" id="myname" class="form-control" pattern="[A-Za-z ]+" autofocus="" required="" placeholder="Your Name">
</div>

そして私はこのjqueryコードを使用しています

$('.input-group :input[required]').each(function() {
    if ($(this).val()==='') {
    $(this).after('<div class="err">This is a Requierd Field</div>');
}

コードを実行した後、.errdiv がページに追加されましたが、そのクラスの.input-groupに追加する必要があります( )。ソースコードは次のとおりです。 .input-groupここに画像の説明を入力

また、jQuery.insertAfter()メソッドを次のように使用しようとしました:

$('<div class="err">This is a Required Field</div>').insertAfter('.input-group');

必要な場所にdivを挿入しましたが、関数.errに基づいてdivを複製してい.each()ます! たとえば、3 つの入力がある場合、3 つの要素に対して 3 回ループします。

これを修正する方法を教えてください。

ありがとう

4

1 に答える 1

1

parent()または_closest()

 $('.input-group :input[required]').each(function() {
   var $this=$(this);
   if ($this.val()==='') {
       $this.parent().after('<div class="err">This is a Requierd Field</div>');
   }
 });

また

 $(this).closest('.input-group').after('<div class="err">This is a Requierd Field</div>');
于 2013-11-08T09:35:07.763 に答える