jQuery:选择“this”子元素

时间:2010-11-04 06:00:40

标签: jquery html-table jquery-selectors

我真的为这个特殊障碍而疯狂,手头的问题是我有一个非常简单的表格,包含所有行。我想要完成的是当你点击一行时,这个脚本就是想读取存储在同一行中最后一个td的链接,然后指示你。

到目前为止,我想出的是

 $('tr td').click(
     function (){
        alert($(this+':parent td:last-child a:first').attr('href'));
     }
 );

我已经尝试了100种不同的方法我得到错误/未定义或者我只得到最后/第一行的结果中间的行不能正常工作。

非常感谢所有帮助

表格如下所示

http://www.jsfiddle.net/xK7Mg/1/

5 个答案:

答案 0 :(得分:3)

我认为你打算这样做:

$('tr td').click(function() {
   window.location.href = $(this).parent().find('td:last-child a:first').attr('href');
});

答案 1 :(得分:1)

在这种情况下使用.siblings(),但.parent().children()也可以,如下所示:

$('tr td').click(function() {
  window.location.href = $(this).siblings('td:last').find('a').attr('href');
});

更进一步,不要将click处理程序附加到每个单元格,使用.delegate()为整个表附加一个,如下所示:

$('#tableID').delegate('td', 'click', function() {
  window.location.href = $(this).siblings('td:last').find('a').attr('href');
});

You can try it out here

答案 2 :(得分:1)

我认为你需要的是:

$('tr').click(function(){
    window.location = $(this).find('td:last a:first').attr('href');
});

此脚本将导致每个表行在单击时将您重定向到最后一个表格单元格中第一个锚元素中引用的位置。

答案 3 :(得分:0)

$('tr').click(
     function (){
        window.location = $(this).find("td:last a:first").attr('href');
     }
 );

答案 4 :(得分:0)

http://jsfiddle.net/ppw8z/

 $('tr').click(function() {
    window.location = $(this).find('td>a').attr('href');    
 });