jquery:无法选择由jquery动态创建的表元素

时间:2014-02-08 07:52:11

标签: javascript jquery select element dynamically-generated

在html中有<div id="tableContainer">并且我附加了动态创建的表

table = $("<table id="myTable" class='helpTable'>");
table.append("<tr id='1'><td>content<td></tr>");code
table.append("<tr id='2'><td>content<td></tr>"); code
$('#tableContainer').append(table);

现在我想在表格行上添加事件,如

 $("#myTable tr").on('click',function(event) {
alert("Hi"); });

它不起作用,但是以下情况正在发挥作用

$("#tableContainer").on('click',function(event) {
alert("Hi"); });

即。我可以在静态html标签上有活动

2 个答案:

答案 0 :(得分:2)

您需要使用event delegation作为表格,并且tr元素是动态创建的

$("#tableContainer").on('click', '#myTable tr', function (event) {
    alert("Hi");
});

答案 1 :(得分:1)

以下是使用委托

的最终解决方案

$("#tableContainer").on('click', 'tr', function (event) { alert("Hi");});

从父元素到子元素的委托。

Jquery是Javascript的简写,动态元素的委托不是简写。