我不确定这是否可以帮助您,但我想问题可能出在此处:“如果 HTML 比没有属性的单个标记更复杂,就像在上面的示例中一样,则元素的实际创建由浏览器的 innerHTML 机制。” 引用自jQuery 文档(另请参见2)我想如果您避免使用 innerHTML,它可以工作。尝试使用标准的 javascript 方法:
//new row
var newrow = document.createElement('tr'); // creates empty row
//1st cell
var newcell = newrow.insertCell(0); // create and insert empty cell to newrow + returns cell reference
newcell.style.width = '25%';
newcell.style.fontWeight = 'bold';
newcell.appendChild(document.createTextNode('Substancje czynna:'));
//2nd cell
var newcell = newrow.insertCell(1);
newcell.style.width = '25%';
var newselect = document.createElement('select');
newselect.setAttribute('name', 'nazwamiedzynarodowa[]');
newselect.options[0] = new Option('nazwa1', 'opt1');
newselect.options[1] = new Option('nazwa2', 'opt2');
newselect.options[0].selected = true;
newcell.appendChild(newselect);
//3rd cell
var newcell = newrow.insertCell(2);
newcell.appendChild(document.createTextNode(' Dawka: '));
newcell.appendChild(document.createElement('br'));
//4th cell
var newcell = newrow.insertCell(3);
var newselect = document.createElement('select');
newselect.setAttribute('name', 'jednostka[]');
newselect.options[0] = new Option('jed1', 'opt1');
newselect.options[1] = new Option('jed2', 'opt2');
newselect.options[0].selected = true;
newcell.appendChild(newselect);
//alert(newrow.innerHTML);
$('#table > tbody > tr').eq(2).after(newrow);