2009-07-01 57 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")