2011-04-10 92 views
0

TD隐藏单元格,我有以下表格:检索使用jQuery

<table id="mytable"> 
<tr> 
<th class="hidden">id</th> 
<th>name</th> 
</tr> 
<tr> 
<td class="hidden">87</td> 
<td>Isle of Palms</td> 
</tr> 
</table> 

,然后这个jQuery代码隐藏ID列:

<script> 
$(function() { 
$('.hidden').hide(); 
}); 
</script> 

我需要获得ID单元隐藏值时我点击任何一行,但我找不到合适的选择器。任何帮助将不胜感激。感谢名单。

回答

0

试试这个:

$('tr').click(function() { 

    var id = $(this).find('td.hidden').html(); 
}); 

UPDATE

$('tr').click(function() { 

    var id = $(this).find('td.hidden:first').html(); 
}); 

如果有很多列,要选择的第一个,你可以使用:first。请记住,这将为您表中的所有行添加单击事件。我想你只对你体内的行感兴趣,你的例子没有。所以我会做这个:

<table id="mytable"> 
    <thead> 
    <tr> 
     <th class="hidden">id</th> 
     <th>name</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td class="hidden">87</td> 
     <td>Isle of Palms</td> 
    </tr> 
    </tbody> 
</table> 

,然后设置单击事件TBODY行

$('tbody tr').click(function() { 

    var id = $(this).find('td.hidden:first').html(); 
}); 

希望帮助!

+0

返回null。感谢无论如何;) – Jorge 2011-04-10 21:23:30

+0

呃...实际上你的代码适用于我发布的例子。对我最后的评论感到抱歉。但它不适合我真正的问题。我使用了一个有15列的表格,其中7个是隐藏的,我需要获得第一个隐藏列,它是id。最好的祝福。 – Jorge 2011-04-10 21:36:33

+0

请看我的更新。 – 2011-04-10 21:46:57

0

我会假设你我的<td class="hidden">87</td>87

.text()您可以在<tr/>注册一个单击处理程序,然后找到你<td/>

$("tr").click(function(){ 
    var $idCell = $(this).find("td.hidden"); 
    if($idCell.length == 1) 
    { 
     var id = $idCell.text(); 
    } 
}); 

编辑

一稍微好一点的选项可能是使用.filter(),因此您只注册具有chil的事件处理程序d <td class="hidden"/>

$("tr").filter(function(){ 
    return $(this).children("td.hidden").length == 1; 
}).click(function(){ 
    alert($(this).find("td.hidden").text()); 
}); 
+0

这将工作!或者他实际上可以编写符合W3C标准的ad和tbody。然后设置点击事件像这样=> $('tbody tr')。click(function(){...}); – 2011-04-10 20:46:11

+0

谢谢,但它不起作用。请问您.length == 1的含义是什么?对不起还在学习;) – Jorge 2011-04-10 21:32:40

+0

这只是一种确保返回的结果集中只有一个隐藏的td的方法。如果您遇到问题,请在http://jsfiddle.net上发布更强大的示例,以查看问题出在哪里。 – 2011-04-10 22:00:34