我们如何在函数的jquery中获得特定的动态添加td的id

时间:2013-03-23 07:31:17

标签: javascript jquery

例如,我的动态内容如下

<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。

请建议我这样做的正确方法以及上述代码的错误

5 个答案:

答案 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'));        
});