2009-07-01 45 views
10

我有以下jQuery代碼。jquery添加行到表

var destTable = $("#numbers"); 
$(document).ready(function() { 
    $("#btnAdd").click(function() { 
    //Take the text, and also the ddl value and insert as table row. 
    var newRow = $("<tr><td>hi</td></tr>"); 
    $("#numbers").append(newRow); 
    }); 
}); 

我真的很想保存一個元素的引用,然後從那裏使用它。

上面的代碼添加一行到我的表如預期,但如果我使用。 $(destTable).append(newRow)destTable.append(newRow)什麼都沒有發生任何人可以擺脫這個對我的任何亮光?

感謝

回答

22

保持內部的document.ready參考:

$(document).ready(function() { 
    var destTable = $("#numbers"); 
    $("#btnAdd").click(function() { 
    //Take the text, and also the ddl value and insert as table row. 
    var newRow = $("<tr><td>hi</td></tr>"); 
    $("#numbers").append(newRow); 
    }); 
}); 

的document.ready的一點是要等待DOM準備好。如果您嘗試在其外部執行$('#numbers');(並且代碼沒有出現在文檔中的元素之後),那麼DOM不會創建此元素,因此您不會正確引用它。

一旦你這樣做,你應該能夠做到:

destTable.append(newRow); 

裏面的click功能。但是,最後一點需要注意的是,代表jQuery集的變量的前綴是$。因此,這是最好的:

var $destTable = $("#numbers"); 
+0

有道理的時候我想過歡呼,得到成功的治療。 – RubbleFord 2009-07-01 08:00:02

0

你可以使用appendTo這樣的:

$("<tr><td>Hello</tr><tr>").appendTo("#MyTable > tbody")