我有<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的新手,所以任何帮助/链接都很有用......也许是不同的方法?
答案 0 :(得分:1)
- #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');
}