2017-09-16 42 views
0

我試圖通過在我的應用程序中對現有表格進行一些更改來重新格式化表格。我在互聯網上搜索了以下錯誤,但我還沒有找到任何解決方案。無法讀取表格中未定義的屬性'createDocumentFragment'重新格式化

錯誤,我得到的是如下:

無法讀取的不確定

這裏財產 'createDocumentFragment' 是我

function editTable() 
{ 

// debugger; 
// remove blank td pair 
$('#prodHold tr td').each(function() { 
    // debugger; 
    if ($(this).text() == ''){ 
     $(this).prev('td').remove(); 
     $(this).remove(); 
    } 
}); 


// get array of all tds 
var tds = $('#prodHold tr td').length; 
var td_arr = []; 
for(var i=0; i<tds; i++){ 
    // if($(this).text()!== ''){ 
     // td_arr.push($('#prodHold tr td').eq(i).html()); 
    // } 
    if($(this).html()!== ''){ 
     td_arr.push($('#prodHold tr td').eq(i).html()); 
    } 

} 

// prepare table, wrap tr for every 4 tds, *according to your table sample 
var e = '<tr>'; 
for(var i=1; i<=td_arr.length; i++){ 
    if(i%4 == 0){ 
     e = e + '<td>' + td_arr[i-1] + '</td></tr><tr>'; 
    } 
    else{ 
     e = e + '<td>' + td_arr[i-1] + '</td>'; 
    } 
} 
// append 
$('#prodHold').html(e); 
} 



$(document).ready(function() { 
    editTable(); 

}); 

下面一行

得到錯誤
我從這個問題用0

代碼貼在下面

Remove content from table and reformat the table

請指引我,如果我在這裏做什麼錯事。

回答

1

錯誤似乎在$(this).html()上觸發,因爲this沒有引用DOM元素。在正常的for循環中,您正在使用this,而您可能打算將它用於jQuery each循環回調。

像這樣:

// get array of all tds 
var tds = $('#prodHold tr td'); // not length 
var td_arr = []; 
tds.each(function() { 
    if($(this).html()!== ''){ 
     td_arr.push($(this).html()); 
    } 
}) 

NB:你真的應該重新考慮,如果你作爲一個答案收到的錯誤代碼,當之無愧地被標記接受。

相關問題