Using a row
variable to get data dynamically and set the table row.
var row = '<tr>'+
'<td>'+obj.Message+'</td>'+
'<td>'+obj.Error+'</td>'+
'<td>'+obj.Detail+'</td>'+
'</tr>';
Based a value I tried to add another <td>
to the row object but it didn't work.
if(obj.Type=='Error') {
$(row).find('td:last').append('<td>'+ obj.ErrorCode+'</td>');
}
$('table> tbody:last').append(row);
First I tried to just append the <td>
to row but that didn't work as well.
$(row).append('<td>'+ obj.ErrorCode+'</td>');
You're not storing the last row.
When you call $(row).find(...).append(...)
the result is not being stored in a variable. The best solution is probably keeping a jQuery object from the start:
// v--- use a jQuery object here
var $row = $('<tr>'+
'<td>'+obj.Message+'</td>'+
'<td>'+obj.Error+'</td>'+
'<td>'+obj.Detail+'</td>'+
'</tr>');
if(obj.Type=='Error') {
$row.append('<td>'+ obj.ErrorCode+'</td>');
}
$('table> tbody:last').append($row);
See fiddle
Instead of append
use after and use ===
(or ==
) instead of =
if(obj.Type === 'Error') {
$(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>'); //This will add the new td after the last one
..
or just append it to the row:
$(row).append('<td>'+ obj.ErrorCode +'</td>'); //this will do the same thing, less code and append this as last td of your row.
use ==
comparision operator for comparision: To insert new cell use .after() or you can just append whole row using .append()
if(obj.Type=='Error') {
$(row).append('<td>'+ obj.ErrorCode+'</td>');
}
Your appending INSIDE a td
, you want .after
if(obj.Type=='Error') {
$(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>');
}
And the whole, ==
over =
is an issue as well.
You have done mistake here:
obj.Type='Error'
(=)act as assignment operator here.
Check with
if(obj.Type=='Error'){
//hence code.
}
Don't you have to add row
to the DOM before you can search it and add another <td>
?
Solution 1
var row = '<tr>'+
'<td>'+obj.Message+'</td>'+
'<td>'+obj.Error+'</td>'+
'<td>'+obj.Detail+'</td>';
if(obj.Type=='Error') {
row += '<td>'+ obj.ErrorCode+'</td>';
}
row += '</tr>';
$('table> tbody:last').append(row);
Solution 2
var row = '<tr>'+
'<td>'+obj.Message+'</td>'+
'<td>'+obj.Error+'</td>'+
'<td>'+obj.Detail+'</td>'+
'</tr>';
$('table').append(row);
if(obj.Type=='Error') {
$('table').find('td:last').after('<td>'+ obj.ErrorCode+'</td>');
}
Solution 3
var row = '<tr>'+
'<td>'+obj.Message+'</td>'+
'<td>'+obj.Error+'</td>'+
'<td>'+obj.Detail+'</td>'+
'</tr>';
$('table').append(row);
if(obj.Type=='Error') {
$('table tr').append('<td>'+ obj.ErrorCode+'</td>');
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.