0

我有一个填充使用的<select id='group1'>下拉列表<textarea id='group2'>

$('#group1').on('change', function(event) {
        $.post('get_data.php', {sent_id: form1.group1.value },
        function(bounced) {
           var valNew = bounced.split(',');
            $('#group2').html(valNew[0]) ;
        });
    });

这部分工作正常。现在我正在尝试克隆它<div id='tableline_00'>id使用

var current_id = 0;
$('#btn').click(function(){
    nextElement($('#tableline_00'));
})

function nextElement(element){
    var newElement = element.clone(true);
    var id = current_id+1;
    current_id = id;
    if(id <10)id = '0'+id;
    newElement.attr('id',element.attr('id').split('_')[0]+'_'+id);
    var field = $('input', newElement).attr('id');
    $('input', newElement).attr('id', field.split('_')[0]+'_'+id );
    newElement.appendTo($('#elements'));
    newElement.slideDown('fast');
}

这也适用,但 $('#group1').on('change', function(event)仅适用于第一行,因为所有新的克隆行都有新的输入名称。你怎么能改变$('#group1')$('#group2')变数。我是 jQuery 新手,所以任何帮助/链接都是有用的......也许不同的方法?

4

1 回答 1

1

好的,所以我关注了 Felix 链接,它可以工作。这是最终代码,以防其他人需要它。我也对 HTML 进行了一些更改:

-#elements 是包含#tableline_00 div的div;

-#tableline_00 是被克隆的div;

-'label1', 2, 3 等是根据用户选择动态创建的标签,其中包含来自'get_data.php'的信息

$('#elements').on('change', 'select', function() {
    handler = $(this).val();
    name = $(this).attr('id');
    $.post('get_data.php', {sent_id: handler },
        function(bounced) {
           var valNew1 = bounced.split(',');
            $('.label' + a).html(valNew1[0]) ;
        });
});

    var a = 0;
    $('#btn').click(function(){
        nextElem($('#tableline_00'));
    })

    function nextElem(element){
        var newElement = element.clone(true);
        a = a + 1;
        $('select', newElement).attr('id','select' + a);
        $('select', newElement).attr('class','select' + a);
        $('select', newElement).attr('value', 'select' + a);
         $('label', newElement).attr('class','label' + a);
        $('label', newElement).attr('value', 'label' + a);
        newElement.appendTo($('#elements'));
        newElement.slideDown('fast');
    }
于 2013-02-25T09:16:09.767 回答