jQuery单击动态添加的元素

时间:2016-08-27 16:56:45

标签: javascript jquery html onclick

我使用jQuery创建了一个HTML表格,我想点击第二行内的第一个链接。 生成的HTML看起来像这样

<tr><td>4</td><td>text</td></tr>
<tr id="xrow22" class="xrow"><td colspan="2"><a>0</a><a>1</a></td></tr>

当我使用鼠标单击行时,功能处理点击效果很好

$('table').on('click', '[id^=xrow] a', function(){ ...

当我尝试从另一个函数调用此函数时,它不起作用。我使用警报来查看一些值,并且令人惊讶的是下面的代码警报(第二个值应为0)

<a>0</a><a>1</a>,,[object Object]

代码:

$('table').on('click', 'tr:not(.xrow)', function(e){
  $(this).next().children('td:first-child a:first-child').click();
  alert($(this).next().children('td:first-child').html() +','+ $(this).next().children('td:first-child a:first-child').text() +','+ $(this).next().children('td:first-child a:first-child'));
});

2 个答案:

答案 0 :(得分:0)

您可以使用$()。live()函数代替$()。on()函数。基本上,当您创建新元素时,jquery不会重新运行并将点击附加到它。 http://api.jquery.com/live/

答案 1 :(得分:0)

当我使用 -- if return 0 is numeric select PATINDEX('%[^0-9]%','1E234') select PATINDEX('%[^0-9]%','1E2341') select PATINDEX('%[^0-9]%','102341') 时,我得到了预期的结果。