获取列的行和顶部单元格的第一个单元格

时间:2013-01-30 12:10:30

标签: jquery

我有一个大表(id = PersonValue),其中包含第一行数字值,每行的第一个单元格是一个名称。 当我单击表格中的某个单元格时,我想要检索该行的第一个单元格中的名称以及该列的顶部单元格中的nummeric值。

我发现这个脚本可以检索名称并相应地调整它,但它没有给我这个名字。

$('#PersonValue').click(function(){
    var name = $(this).closest('tr').find('td:first').text();
    console.log('Name is '+ name); // returns 'Name is ' while something like 'Name is Niko' is expected

  //var number = ??
});

我不知道如何在脚本中看到顶部单元格。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

这是一个完整的working solution

$('table').on('click', 'td', function() {
    var $this = $(this),
        name = $this.siblings(':first-child').text(),
        pos = $this.index() + 1,
        num = $this.parent().siblings().first().children(':nth-child('+pos+')').text();

    alert(num + ' & ' + name);
});

答案 1 :(得分:0)

尝试使用此代码块:

$('#PersonValue').click(function(){
    var name = $(this).siblings('tr').find('td:first-child').text();
    console.log('Name is '+ name); // returns 'Name is ' while something like 'Name is Niko' is expected

  //var number = ??
});

我使用siblings()并添加了选择器:first-child

答案 2 :(得分:0)

 $('#PersonValue tr').on("click","td",function() {

        var $td=$(this);
        var $tr=$td.parent();
        var tdindex=$td.prevAll().length;
        //or try $td.index();

        var name = $tr.find('td:first-child').text();
        var colheader =  $('#PersonValue').find("thead > th:nth-child("+tdindex+")").text(); 
 })

没有测试它,也没有看过你的html(在thead中?)但是你得到了我希望的想法。 编辑:从表tr

委派时尝试索引方法

编辑:这种普遍的方法可以让索引听起来更好听