【问题标题】:Div not appending more than one time in jquery?div在jquery中不追加一次以上?
【发布时间】:2013-07-30 18:32:36
【问题描述】:

我正在尝试添加带有数组名称的动态字段,我已经这样做了

<div class="extra_subject"></div>
<button class="add_sub btn">Add</button>
<button class="rem_sub btn">Remove</button>

在 JS 中我做到了

var subject_div = $('<div class="sub_add_extra">'
    +'<div class="control-group">'
        +'<label for="sub_form" class="control-label">Subject</label>'
        +'<div class="controls">'
            +'<select name="add_subject[]">'
                +'<option value="">Please Select</option>'
                 <?php foreach($sub as $row){ ?>
                    +'<option value="<?php echo $row->id; ?>" ><?php echo $row->subject_name; ?></option>'
                <?php } ?>
            +'</select>'
        +'</div>'
     +'</div>'
+'</div>');
$('.add_sub').click(function(e){
    e.preventDefault();
    $('.extra_subject').append(subject_div);
});
$('.rem_sub').click(function(e){
    e.preventDefault();
    $('.sub_add_extra').last().remove();
});

它第一次附加内容,然后当我尝试附加其覆盖现有 div 类 .sub_add_extra 并在我单击删除按钮时正确删除。

【问题讨论】:

  • 追加 subject_div 作为字符串,而不是 jQuery 对象,see here。我实际上不知道为什么附加对象不起作用,希望有人可以提供解释
  • 如果将 $('.extra_subject').append(subject_div) 更改为 $(subject_div).appendTo('.extra_subject') 会发生什么?
  • @nocturns2 也一样

标签: jquery append


【解决方案1】:

使用clone()

$('.add_sub').click(function(e){
    e.preventDefault();
    $('.extra_subject').append(subject_div.clone());
});

DEMO HERE 现在,您一次又一次地附加相同的对象。 clone() 将创建该对象的克隆并每次都附加此克隆对象。如果您将某些事件附加到原始对象,请使用clone(true)

【讨论】:

  • 你知道我会克隆,但很多东西需要在那个 div 中分配和操作,所以只有我创建了一个 jquery 对象。但这应该作为正常的附加函数附加,但它会覆盖任何特定原因。
  • @sathya 我已经解释了为什么它在我编辑的答案中不起作用。你在操作中会遇到什么问题?
【解决方案2】:

尝试我创建一个这样的函数并在点击时使用它肯定会起作用

function addmoreoption() {
    var html_option = '<tr valign="center"><td valign="center" bgcolor="#E8E8E8" >Name</td></tr>';
    $('#more_option').append(html_option);
}

【讨论】:

  • 是的,我现在只用作字符串:)。我认为它把它作为一个选择器,但它也附加了
猜你喜欢
  • 2017-03-14
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
相关资源
最近更新 更多