【发布时间】:2012-08-31 02:15:05
【问题描述】:
我想使用 jQuery .append 将 div 插入到另一个父 div 中,该 div 是列表元素的一部分,由一个动态创建的表单字段组成。虽然父类只包含一个对象(即文本字段)并且在整个文档中只存在一次,但 .append 将 div 添加了六次。它适用于 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>
【问题讨论】:
-
代码被多次运行。它在哪里运行?什么在执行它?改变事件?点击事件?
-
$(".input-box") .append("") 将你的 jquery 代码放在循环之外我的链接") 而不是 $(".input-box.billing_postcode") .append("My Link
@KevinB:这是一个修改我正在尝试自定义的默认结帐表单的模块,我将更深入地研究代码,看看是否能找到您问题的答案。跨度>
@AshirvadSingh 是的,这将使其脱离循环,但会将链接应用到所有其他 div,例如输入框运输表格、付款表格等。