I am trying to add rows to the tbody
of a table. But I am having issues with achieving that. Firstly, the function where everything takes place is called on change of a dropdown from a html page. I created a tr
string containing all the td
inside that containing the html elements, text and other stuff. But when I am trying to add that generated row to the table using:
$(newRowContent).appendTo("#tblEntAttributes tbody");
I am encountering an error. The name of the table is tblEntAttributes
and I am trying to add it to the tbody
.
Actually what's happening is jQuery is unable to get tblEntAttributes
as an html element. But I can access it using documemt.getElementById("tblEntAttributes");
Is there any way I can achieve this by adding rows to the tbody
of the table. Maybe a bypass or something.
Here's the entire code:
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);
One thing I forgot to mention is the function where this code is written is actually the success callback function for a ajax call. I am able to access the table using document.getElementById("tblEntAttributes")
but for some reason $(#tblEntAttributes)
doesn't seem to work.
("#tblEntAttributes tbody")
needs to be
$("#tblEntAttributes tbody")
.
You are not selecting the element with the correct syntax
Here's an example of both
$(newRowContent).appendTo($("#tblEntAttributes"));
and
$("#tblEntAttributes tbody").append(newRowContent);
working http://jsfiddle.net/xW4NZ/