1

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

我找到了这个脚本来检索名称并相应地对其进行了调整,但它没有给我名称。

$('#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 = ??
});

正如您在脚本中看到的那样,我不知道如何获取顶部单元格。

任何帮助深表感谢!

4

3 回答 3

1

这是一个完整的工作解决方案

$('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);
});
于 2013-01-30T12:34:45.673 回答
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

于 2013-01-30T12:14:08.937 回答
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 (th in thead ?)但你明白我希望的想法。编辑:从表 tr 委派时尝试索引方法

编辑:这种获取索引的 prevall 方法实际上听起来更好

于 2013-01-30T12:21:50.730 回答