Javascript jQuery:将td元素添加到tr

Javascript jQuery:将td元素添加到tr,javascript,jquery,html,Javascript,Jquery,Html,使用行变量动态获取数据并设置表行 var row = '<tr>'+ '<td>'+obj.Message+'</td>'+ '<td>'+obj.Error+'</td>'+ '<td>'+obj.Detail+'</td>'+ '</tr>'; var行=“”+ ''+obj.消息+''+ ''+对象错误+''+ ''+obj.细节+''+ '';

使用
变量动态获取数据并设置表行

var row = '<tr>'+
      '<td>'+obj.Message+'</td>'+
      '<td>'+obj.Error+'</td>'+
      '<td>'+obj.Detail+'</td>'+
      '</tr>';
var行=“”+
''+obj.消息+''+
''+对象错误+''+
''+obj.细节+''+
'';
基于一个值,我尝试向row对象添加另一个
,但没有成功

if(obj.Type=='Error') {
  $(row).find('td:last').append('<td>'+ obj.ErrorCode+'</td>');
}
$('table> tbody:last').append(row);
if(对象类型=='Error'){
$(行).find('td:last').append(“”+obj.ErrorCode+“”);
}
$('table>tbody:last')。追加(行);
首先,我尝试将
添加到行中,但效果不好

$(row).append('<td>'+ obj.ErrorCode+'</td>');
$(行).append(“”+obj.ErrorCode+“”);

使用比较运算符进行比较: 要插入新单元格,请使用.after(),也可以使用
.append()

if(对象类型=='Error'){
$(行).append(“”+obj.ErrorCode+“”);
}

td
中添加您想要的
.after

if(obj.Type=='Error') {
    $(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>');
}
if(对象类型=='Error'){
$(行).find('td:last')。在(''+obj.ErrorCode+'')之后;
}

整体而言,
=
上的
=
也是一个问题。

而不是
追加
使用
==
(或
=
)而不是
=

  if(obj.Type === 'Error') {
    $(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>'); //This will add the new td after the last one
   ..
if(obj.Type=='Error'){
$(行).find('td:last')。在(''+obj.ErrorCode+'')之后;//这将在最后一个td之后添加新的td
..
或者只是将其附加到行中:

   $(row).append('<td>'+ obj.ErrorCode +'</td>'); //this will do the same thing, less code and append this as last td of your row.
$(行).append(“”+obj.ErrorCode+“”);//这将做同样的事情,减少代码并将其作为行的最后一个td追加。

您在这里犯了错误:

 obj.Type='Error' 
(=)在此处充当赋值运算符

核对

  if(obj.Type=='Error'){
   //hence code.
  }

您没有存储最后一行

调用
$(行).find(…).append(…)
时,结果不会存储在变量中。最好的解决方案可能是从一开始就保留jQuery对象:

//         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);
//v---在这里使用jQuery对象
变量$row=$(“”+
''+obj.消息+''+
''+对象错误+''+
''+obj.细节+''+
'');    
如果(对象类型=='Error'){
$row.append(“”+对象错误代码+“”);
}
$('table>tbody:last')。追加($row);

请参见

在搜索DOM并添加另一个
之前,是否必须将
添加到DOM中

解决方案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);
var行=“”+
''+obj.消息+''+
''+对象错误+''+
''+对象细节+'';
如果(对象类型=='Error'){
行+=''+对象错误代码+'';
}
行+='';
$('table>tbody:last')。追加(行);
解决方案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>');
}
var行=“”+
''+obj.消息+''+
''+对象错误+''+
''+obj.细节+''+
'';
$('table')。追加(行);
如果(对象类型=='Error'){
$('table').find('td:last')。在(''+obj.ErrorCode+'')之后;
}
解决方案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>');
}
var行=“”+
''+obj.消息+''+
''+对象错误+''+
''+obj.细节+''+
'';
$('table')。追加(行);
如果(对象类型=='Error'){
$('table tr').append(“”+obj.ErrorCode+“”);
}

它是
==
如果(对象类型=='Error'){…
not
=
值得一提的是,这不会阻止他的代码尝试添加单元格。这会使他每次都尝试添加单元格,而不管
obj.Type
。这是一个拼写错误。我已经修复了它。所以你可以接受上面的答案,你觉得合适:)@HimanshuYadav我做了一个被更正的拼写错误ected(第1行)。
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>');
}