0

jQuery .append を使用して、リスト要素の一部であり、動的に作成された 1 つのフォーム フィールドで構成される別の親 div に div を挿入したいと考えています。親クラスには 1 つのオブジェクト (つまり、テキスト フィールド) しか含まれておらず、ドキュメント全体に 1 回しか存在しませんが、.append は div を 6 回追加します。JSfiddle では動作しますが、ローカル コード (Magento フォーム) では動作しません。何故ですか?親クラスの動的な作成に関連している可能性はありますか?

PHP

$input_name     = $this->getInputName();
$input_id       = $this->getInputId();
$input_value    = $this->getValue();
$input_class    = $this->getInputClass();
$label          = $this->getLabel();

<div class="input-box <?php echo $input_id;?>">
 <input type="text" name="<?php echo $input_name;?>" id="<?php echo $input_id;?>" value="<?php echo $this->htmlEscape($input_value) ?>" title="<?php echo $this->__($label); ?>" class="<?php echo $input_class;?>" />
</div>

jQueryで

$(".input-box.billing_postcode") .append("<div>My Link</div>")

常に次の HTML につながります

<li>
<div class="input-box billing_postcode">
<input id="billing_postcode" class=" input-text required-entry absolute-advice " type="text" title="ZIP" value="" name="billing[postcode]">
<div>My Link</div>
<div>My Link</div>
<div>My Link</div>
<div>My Link</div>
<div>My Link</div>
<div>My Link</div>
</div>

4

1 に答える 1

1

これで修正されるはずです:

var $element = $(".input-box.billing_postcode");
if($('.foo', $element).length == 0) {
    $element.append('<div class="foo">My Link</div>');
}
于 2012-08-30T18:15:05.943 に答える