例如,我的动态内容如下
<table>
<tr>
<td id='id_1' class='myclass'>1</td>
<td id='id_2' class='myclass'>2</td>
<td id='id_3' class='myclass'>3</td>
.... 我的功能是
$(body).on('click','.myclass', function() {
console.log($(this).attr('id'));
});
现在,当我点击td时,我得到一些整数,让我们说671而不是我的td ID。
请建议我这样做的正确方法以及上述代码的错误
答案 0 :(得分:1)
我不相信$(body)是有效的语法。尝试$(文档),它似乎工作得很好:jsfiddle working
$(document).on('click','.myclass', function() {
alert($(this).attr('id'));
});
答案 1 :(得分:1)
尝试使用$('body')代替$(body)
答案 2 :(得分:0)
尝试以下
$('body td').click(function() {
console.log($(this).attr('id'));
});
答案 3 :(得分:0)
我检查了你的代码,除了上面提到的正文问题外,它似乎运行良好,所以你的问题必须与动态添加项目的方式或你正在使用的jQuery版本有关。
以下代码适用于动态添加的项目,与您的项目非常相似。我正在将选定的项目输出到div,以便更加明显。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
<script>
$(document).ready(function () {
var counter = 1;
window.setInterval(function() {
$('tr').append("<td id='id_"+counter+"' class='myclass'>"+counter+"</td>");
counter++;
}, 3000);
$('body').on('click','.myclass', function() {
$('#selectedtd').html($(this).attr('id'));
});
});
</script>
</head>
<body>
<div id="selectedtd"></div>
<table>
<tr>
</tr>
</table>
</body>
</html>
答案 4 :(得分:0)
您正在使用标记选择器$(正文),因此它应该用单引号或双引号括起来。否则就去吧 -
$(document).on('click','.myclass', function() {
alert($(this).attr('id'));
});