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 回答