使用jQuery动态地向表中添加行和列

use*_*772 7 javascript jquery dom

我有以下JavaScript代码:

function addRowToTable()
{
  var tbl = document.getElementById('tblSample');
  var lastRow = tbl.rows.length;
  // if there's no header row in the table, then iteration = lastRow + 1
  var iteration = lastRow;
  var row = tbl.insertRow(lastRow);

  // left cell
  var cellLeft = row.insertCell(0);
  var textNode = document.createTextNode(iteration);
  cellLeft.appendChild(textNode);

  // right cell
  var cellRight = row.insertCell(1);
  var el = document.createElement('input');
  el.type = 'text';
  el.name = 'txtRow' + iteration;
  el.id = 'txtRow' + iteration;
  el.size = 40;

  el.onkeypress = keyPressTest;
  cellRight.appendChild(el);

  // select cell
  var cellRightSel = row.insertCell(2);
  var sel = document.createElement('select');
  sel.name = 'selRow' + iteration;
  sel.options[0] = new Option('text zero', 'value0');
  sel.options[1] = new Option('text one', 'value1');
  cellRightSel.appendChild(sel);
}
Run Code Online (Sandbox Code Playgroud)

如何将这个从DOM调用转换为jQuery?任何人都可以提供示例代码.

cam*_*cam 9

我会避免使用HTML字符串并继续像以前一样创建DOM元素.jQuery使这很容易:

var row = $("<tr>");
row.append( $("<td>").text("hello") );
$("#tblSample").append(row);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://api.jquery.com/jQuery/#jQuery2.


Ian*_*nry 2

最简单的方法是简单地使用$('#tblSample').append('<tr> ... </tr>'),手动输入 html 字符串(如果它是常量)。您还可以从其他地方读取 html,以获得更具可读性的代码:

 $('#tblSample').append($('div#blank-row-container').html());
Run Code Online (Sandbox Code Playgroud)