在动态创建的元素上使用Jquerys的.last'?

时间:2012-05-28 21:21:08

标签: jquery html jquery-selectors

我在弄清楚如何做到这一点时遇到了很多麻烦:

$('.add_education').click(function() {
    $('#education_form_clone:last').last().clone(true).appendTo('#education_form_container');
});

如果它是新创建的元素,它不会选择最后一个元素。基本上我想要克隆最后的#education_form_clone(以获取值。)我理解它是因为它是动态创建的,我以前必须解决这样的事情,但我无法弄清楚我的生活我是如何管理的。

2 个答案:

答案 0 :(得分:3)

  1. 您不能拥有多个具有相同ID的元素!它是无效的HTML
  2. 您没有充分理由使用最后两次(:last.last())。
  3. 您应该使用class代替id

    $('.add_education').click(function() {
        $('.education_form_clone:last').clone(true).appendTo('#education_form_container');
    });
    

答案 1 :(得分:0)

如果您将education_form_clone </div>更改为某个类,则可以执行以下操作:

<强> HTML

<div id="edutcation_form_container">
    <div class="education_form_clone">Education Form Element</div>
</div>

<a href="#" class="add_education">Click Me to Clone</a>

<强> JS

$('.add_education').bind('click', function(e){
    e.preventDefault();
    var $clone = $('.education_form_clone').filter(':last').clone();
    $('#edutcation_form_container .education_form_clone').filter(':last').after($clone);

    console.log($clone);
});​

小提琴here