2013-10-31 192 views
1

使用row變量動態獲取數據並設置表格行。jQuery:將td元素添加到tr

var row = '<tr>'+ 
     '<td>'+obj.Message+'</td>'+ 
     '<td>'+obj.Error+'</td>'+ 
     '<td>'+obj.Detail+'</td>'+ 
     '</tr>'; 

基於價值我嘗試添加另一個<td>到該行的對象,但沒有奏效。

if(obj.Type=='Error') { 
    $(row).find('td:last').append('<td>'+ obj.ErrorCode+'</td>'); 
} 
$('table> tbody:last').append(row); 

首先,我試圖只將<td>附加到行上,但那不起作用。

$(row).append('<td>'+ obj.ErrorCode+'</td>'); 
+2

它是'==''如果(obj.Type == '錯誤'){...'不t'=' –

+1

值得一提的是,這不會阻止他的代碼嘗試添加單元格。無論「obj.Type」如何,它都會嘗試每次添加單元格。 – Archer

回答

5

你不是存儲在最後一排。

當您致電$(row).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); 

fiddle

+0

這給了一個錯誤'對象​​....'沒有方法追加。 –

+0

@HimanshuYadav我犯了一個錯誤,已被糾正(第1行)。 – azz

0

使用==的對比對比操作: 要插入新的電池使用。經過(),也可以使用.append()

if(obj.Type=='Error') { 
    $(row).append('<td>'+ obj.ErrorCode+'</td>'); 
} 
0

你追加內td只是追加整行,你想.after

if(obj.Type=='Error') { 
    $(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>'); 
} 

而整個,==超過=是一個問題也是如此。

3

代替append使用after和使用===(或==),而不是=

if(obj.Type === 'Error') { 
    $(row).find('td:last').after('<td>'+ obj.ErrorCode+'</td>'); //This will add the new td after the last one 
    .. 

或只是追加到該行:

$(row).append('<td>'+ obj.ErrorCode +'</td>'); //this will do the same thing, less code and append this as last td of your row. 
0

你做了錯誤的位置:

obj.Type='Error' 

(=)在這裏充當賦值運算符。

請與

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

這是一個錯字。我修好了。 –

+0

所以你可以接受你認爲合適的答案:) –

0

你難道沒有添加row到DOM之前,你可以搜索並添加另一個<td>

溶液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); 

溶液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>'); 
} 

溶液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>'); 
}