使用jquery时,找出表中的元素(使用类)

时间:2012-02-24 14:30:16

标签: jquery

我在HTML中使用表格网格,在点击每行中的特定col时,我使用<tr>动态创建了一个额外的行。附加行用于向服务器提交数据并在提交后将其删除。现在我想除此之外,表的行号也将被发送到服务器。

当我添加行进行编辑时,表会动态更改。我想通过给每个<tr>一个名为task_entry的类并通过计算.task_entry元素的数量来解决这个问题,我将能够找出我所在的行。但是我无法得到这个工作。我尝试使用$(".task_entry").index(this)但它返回-1。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

不要使用.live(),因为它已被弃用。

请尝试播放这个小提琴:http://jsfiddle.net/mB49c/1/

基于其中的结构:

$(document).ready(function() {

    $('table').on('click', 'td', function() {

        //count the row. 0 based. If you want to start at 1, add 1
        var my_row = $(this).parent('tr').index('table tr');

        $('table').append('<tr class="saving"><td>Col 1</td><td>Col 2</td><td>Col 3</td><td>Col 4</td><td>Col 5</td></tr>');


        alert('You clicked on row ' + my_row + ' run some code.. for instance AJAX');

        //If using AJAX, add this as a Success callback
        $('.saving').remove();
    });
});

答案 1 :(得分:0)

$(function() {
  $("table td").click(function() {
    var this_is = $(this).attr("id");
    var this_val = $(this).html();

    alert(this_val)

  });
});

答案 2 :(得分:0)

请检查您的this是什么。可能是col,你点击了吗?然后$(".task_entry").index($(this).closest('tr'))应该做到这一点。