我有一個jQuery包裹的元素,我想追加到一個html行。由於append()貌似接受字符串,但不包含現有的jQuery元素(我可能會在這裏弄錯),所以我無法將其包裹起來。 我有以下設置:追加一個jQuery元素到一個包含html的字符串
var row='<tr><td>data1</td><td>data2</td><td>';
var img=$('<img src="path/to/img.png"');
img.click(myClickHandler);
現在我想要做的就是這個img元素附加到我行和「關閉」的行以結束標記。 我做它,如下所示:
var jRow=$(row);
jRow.append(img);
jRow.append('</td></tr>');
後我排好了,我把它添加到我的表:
$('#tableId').append(jRow);
嗯,上面是不行的,因爲我得到[對象對象]而不是我添加的行中的圖像標籤。
我的目標是在上一個單元格中有一行圖像,並有一個工作點擊處理程序。
Pleease,help。
該html()調用將只返回
html()和append()在功能上幾乎完全相同;看看jQuery的源代碼。 append()可以接受字符串,DOM元素,jQuery對象,幾乎任何東西...... – James 2009-06-10 08:47:24
好的,謝謝澄清!很高興你解決了。 – miek 2009-06-10 10:53:07
我不是100%肯定,但我認爲HTML片段應該永遠是 「完整的」,這意味着只需添加
"</td></tr>"
將無法正常工作。一個解決方案是建立一個完整的HTML片段的字符串,然後追加它,而不是一次追加一個片斷。您可以隨時添加單擊處理您創建jQuery對象之後,就像這樣:
來源
2009-06-10 08:34:22
我猜他已經有一張桌子,他只是在操縱行。但除此之外,我絕對同意:) – miek 2009-06-10 08:36:15
相關問題