我正在尝试向表的tbody
添加行。但我遇到了实现这个问题的问题。首先,从html页面更改下拉列表时调用发生所有事情的功能。我创建了一个tr
字符串,其中包含所有包含html元素,文本和其他内容的td
。但是当我尝试使用以下方法将生成的行添加到表中时
$(newRowContent).appendTo("#tblEntAttributes tbody");
我遇到了错误。该表的名称为tblEntAttributes
,我正在尝试将其添加到tbody
。
实际上正在发生的事情是jQuery无法将tblEntAttributes
作为html元素。但我可以使用documemt.getElementById("tblEntAttributes");
有什么方法可以通过向表的tbody
添加行来实现这一点。也许是旁路或其他什么。
以下是整个代码:
var newRowContent = "<tr><td><input type=\"checkbox\" id=\"" + chkboxId + "\" value=\"" + chkboxValue + "\"></td><td>" + displayName + "</td><td>" + logicalName + "</td><td>" + dataType + "</td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td></tr>";
$("#tblEntAttributes tbody").append(newRowContent);
我忘记提到的一件事是编写此代码的函数实际上是ajax调用的成功回调函数。我可以使用document.getElementById("tblEntAttributes")
访问该表格,但出于某种原因$(#tblEntAttributes)
似乎不起作用。
答案 0 :(得分:85)
("#tblEntAttributes tbody")
需要
$("#tblEntAttributes tbody")
。
您没有选择语法正确的元素
这是
的一个例子$(newRowContent).appendTo($("#tblEntAttributes"));
和
$("#tblEntAttributes tbody").append(newRowContent);
答案 1 :(得分:34)
使用此
$("#tblEntAttributes tbody").append(newRowContent);
答案 2 :(得分:14)
我从未遇到过这样一个奇怪的问题! o.O
你知道问题是什么吗? $不起作用。我尝试使用像jQuery("#tblEntAttributes tbody").append(newRowContent);
这样的jQuery相同的代码,它就像一个魅力!
不知道为什么会出现这个奇怪的问题!
答案 3 :(得分:3)
正如@wirey所说,appendTo
应该有用,如果没有,那么你可以试试这个:
$("#tblEntAttributes tbody").append(newRowContent);
答案 4 :(得分:3)
这是一个使用你提到的html下拉列表的appendTo版本。它在&#34;更改&#34;。
上插入另一行$('#dropdown').on( 'change', function(e) {
$('#table').append('<tr><td>COL1</td><td>COL2</td></tr>');
});
举个例子供你玩。祝你好运!
答案 5 :(得分:0)
使用Lodash,您可以创建模板,您可以按照以下方式执行此操作:
<div class="container">
<div class="row justify-content-center">
<div class="col-12">
<table id="tblEntAttributes" class="table">
<tbody>
<tr>
<td>
chkboxId
</td>
<td>
chkboxValue
</td>
<td>
displayName
</td>
<td>
logicalName
</td>
<td>
dataType
</td>
</tr>
</tbody>
</table>
<button class="btn btn-primary" id="test">appendTo</button>
</div>
</div>
</div>
这里是javascript:
var count = 1;
window.addEventListener('load', function () {
var compiledRow = _.template("<tr><td><input type=\"checkbox\" id=\"<%= chkboxId %>\" value=\"<%= chkboxValue %>\"></td><td><%= displayName %></td><td><%= logicalName %></td><td><%= dataType %></td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td><td><input type=\"checkbox\" id=\"chkAllPrimaryAttrs\" name=\"chkAllPrimaryAttrs\" value=\"chkAllPrimaryAttrs\"></td></tr>");
document.getElementById('test').addEventListener('click', function (e) {
var ajaxData = { 'chkboxId': 'chkboxId-' + count, 'chkboxValue': 'chkboxValue-' + count, 'displayName': 'displayName-' + count, 'logicalName': 'logicalName-' + count, 'dataType': 'dataType-' + count };
var tableRowData = compiledRow(ajaxData);
$("#tblEntAttributes tbody").append(tableRowData);
count++;
});
});
此处位于jsbin