2

jQuery を使用して、次のコードの周りに div を追加しようとしています。

<div class="fsSubField">
<input id="field15744501-zip" class="fsField fsFieldZip fsFormatZipCA" type="text" value="" size="8" name="field15744501-zip">
<br>
<label class="fsSupporting" for="field15744501-zip">Postal Code</label>
</div>

最後に私が持っているように:

<div class="fsSubFieldGroup" style="margin-top:5px;">
<div class="fsSubField">
<input id="field15744501-zip" class="fsField fsFieldZip fsFormatZipCA" type="text" value="" size="8" name="field15744501-zip">
<br>
<label class="fsSupporting" for="field15744501-zip">Postal Code</label>
</div>
</div>

私は次のことを試しました:

$('input.fsFormatZipCA').parent().before('<div> class="fsSubFieldGroup" style="margin-top:5px;">');
$('input.fsFormatZipCA').parent().after('</div>');

フォームの動的な性質のため、「input.fsFormatZipCA」に基づいて選択できるようにする必要があります

これはうまくいくと思いますが、問題はjQueryが次のことをしていることです:

<div class="fsSubFieldGroup" style="margin-top: 5px;"></div>
<div class="fsSubField">
<input id="field15744501-zip" class="fsField fsFieldZip fsFormatZipCA" type="text" value="" size="8" name="field15744501-zip">
<br>
<label class="fsSupporting" for="field15744501-zip">Postal Code</label>
</div>
4

3 に答える 3

3

あなたが探しているようです.wrap

$('input.fsFormatZipCA').parent().wrap(
  $('<div>', {
    'class': 'fsSubFieldGroup',  // class is a reserved word
    css: {
      'margin-top': 5  // - is an invalid identifier character
    }
  })
);

.before要素の前に要素を挿入します。HTML文字列を単純に付加することによってHTMLを構築することはありません。

于 2012-05-29T19:05:10.610 に答える
2

使用.wrap()

$('input.fsFormatZipCA').parent().wrap('<div class="fsSubFieldGroup" style="margin-top:5px;">');

jQueryドキュメントの詳細:http://api.jquery.com/wrap/


.wrap()補足:関数がhteを追加していることに気付くかもしれませ</div>ん。それは物事をはるかに簡単にします。

于 2012-05-29T19:05:24.840 に答える
1

私は提案します:

$('.fsFormatZipCA').parent().wrap('<div class="fsSUbFieldGroup" />');
于 2012-05-29T19:05:34.073 に答える