2012-06-17 56 views
1

我應該用jQuery行添加到表:動態DOM元素創建

<table class="table"> 
     <tbody id="dh-values"> 
     </tbody> 
    </table> 

我已經寫了下面的代碼:

function displayHash(fieldName) { 
    $('#dh-values').append('<tr></tr>').append('<td id="dh-'+fieldName+'">'+$('#'+fieldName).val()+'</td>').append('<td id="dh-'+fieldName+'-h">'+hex_sha1($('#'+fieldName).val())+'</td>'); 
    }; 

但它看起來很可怕。有什麼辦法可以簡化嗎? Esalija的

+2

您實際上將'td'附加到'tbody' – Esailija

+0

您只需要一個'.append()'調用。你可以建立整個字符串'​​​​'並追加一次。但它並不一定更漂亮。 –

+1

它看起來很糟糕,因爲你是「鏈接」。將每個方法調用分隔到一個新行。片段也可以使用一些變量。 – 2012-06-17 16:17:11

回答

1

聯合答案,amnotiam等

DEMO

function displayHash(fieldID) { 
    var val = $('#'+fieldID).val(); 
    var valSha = hex_sha1(val); 
    $("<tr>").appendTo("#dh-values") 
     .append('<td id="dh-'+fieldID+'">'+val+'</td>') 
     .append('<td id="dh-'+fieldID+'-h">'+valSha+'</td>'); 
}; 
+1

雖然 – Esailija

+0

仍附加到'tbody'.append'返回它運行的jQuery對象 – Esailija

+0

是的,仍然這樣做。 – 2012-06-17 16:25:16

1

http://jsbin.com/exopoc/edit#javascript,html,live

function displayHash(fieldName) { 

    var cont = '<tr><td id="dh-'+ fieldName +'">'+ fieldName +'</td> <td id="dh-'+ fieldName +'-h">'+ fieldName +'</td></tr>'; 
    $(cont).appendTo('#dh-values'); 

} 



displayHash('12345678');