2011-11-29 128 views
0
var $td = $('<td/>'); 
var $tr = $('<tr/>'); 

$td.text('something'); 

<table></table> 

我想要做的是一樣的東西:創建附加jQuery的DOM元素

$('table').append($tr + $td); 

什麼是這裏的正確語法?由於

+0

'$( '表')追加( '​​東西' );'會工作得很好。 – Jasper

回答

2

試試這個 -

$('table').append($tr).find('tr:last').append($td); 

這應該tr元素首先追加到表,然後需要找到表內的tr元素和追加td了這一點。感謝Jasper指出需要find('tr')

演示 - http://jsfiddle.net/hbzJf/1

+1

這使得這個HTML是無效的:'

​​東西
'。它將「」附加到「」元素,然後將「​​」附加到「
」元素。你可以這樣改變它:'$('table')。append($ tr).find('tr')。append($ td);' – Jasper

+0

謝謝Jasper,答案已更新。 – ipr101

+0

我注意到你的更新的一件事是,它會在表中所有的'

'元素中附加'$ td',而不僅僅是附加的元素。我想最簡單的解決方法是:'$('table')。append($ tr).find('tr:last')。append($ td);' – Jasper

2

你可以同時做這一切。

$('table').append('<tr><td>something</td></tr>'); 

或者

$('<tr><td>something</td></tr>').appendTo('table'); 
+0

+1,而且,DOM操作越少越好。 – Jasper

+0

@Jasper它會變得混亂,因爲我想添加一個輸入字段與大量的數據屬性。我想我可以保持表格單元格在字符串級別,並使用find +追加輸入字段,我想? – Johan

+0

@Johan編寫一個字符串(或者你將'.join('')'到一個字符串中的數組)是一個好主意,然後將該單個字符串附加到DOM。在這裏這裏的東西

');'$('table')。append('
「我是這麼做的。如果你需要遍歷一個循環來構建你的輸出,那麼只需要將輸出添加到每個循環的字符串變量中。 – Jasper