无法将 .append() 选项附加到 select 元素
Can't .append() option to select element
我对 .append() 函数有疑问。
$('#add_row').on('click', function(){
var new_row = $(row_default).clone();
new_row.find('.col-1').text($(this).find('.ass-col-partenza').text());
new_row.find('.col-2').text($(this).find('.ass-col-colore').text());
new_row.find('.col-3').empty().html($select.clone());
$table.append(new_row);
console.log('New row added with select: ', $select);
});
$('#add_option').on('click', function(){
var option = $('<option/>').val('Value '+idx).text('Text '+idx);
idx++;
// This should add options, and they should be added to DOM in future .append()
$select.append(option);
$('#my_table').find('.my_select').append(option);
console.log('Added new option, new select is: ',$select);
});
这是带有简短指令列表的 fiddle:
http://jsfiddle.net/v15zyzxj/5/
我希望如果我追加一个选项,如果我追加一个新行就会显示。
PS 我删除了我之前的问题,因为它变得很乱。
刚刚创建并添加到 $select
的新 option
元素正在删除并添加到 DOM 上的 .my-select
元素。为避免这种情况,请按照以下建议将克隆添加到 $select
。
只需更改:
$select.append(option);
收件人:
$select.append(option.clone());
或者,您可以使用 .add()
组合所有要附加新 option
的元素(在 DOM 或内存中),然后只 .append()
而不需要 .clone()
:
//$select.append(option);
$('#my_table').find('.my_select').add($select).append(option);
我对 .append() 函数有疑问。
$('#add_row').on('click', function(){
var new_row = $(row_default).clone();
new_row.find('.col-1').text($(this).find('.ass-col-partenza').text());
new_row.find('.col-2').text($(this).find('.ass-col-colore').text());
new_row.find('.col-3').empty().html($select.clone());
$table.append(new_row);
console.log('New row added with select: ', $select);
});
$('#add_option').on('click', function(){
var option = $('<option/>').val('Value '+idx).text('Text '+idx);
idx++;
// This should add options, and they should be added to DOM in future .append()
$select.append(option);
$('#my_table').find('.my_select').append(option);
console.log('Added new option, new select is: ',$select);
});
这是带有简短指令列表的 fiddle: http://jsfiddle.net/v15zyzxj/5/
我希望如果我追加一个选项,如果我追加一个新行就会显示。
PS 我删除了我之前的问题,因为它变得很乱。
刚刚创建并添加到 $select
的新 option
元素正在删除并添加到 DOM 上的 .my-select
元素。为避免这种情况,请按照以下建议将克隆添加到 $select
。
只需更改:
$select.append(option);
收件人:
$select.append(option.clone());
或者,您可以使用 .add()
组合所有要附加新 option
的元素(在 DOM 或内存中),然后只 .append()
而不需要 .clone()
:
//$select.append(option);
$('#my_table').find('.my_select').add($select).append(option);