获取父项的属性

时间:2011-08-23 19:06:19

标签: javascript jquery

我正在尝试使用表格行获取表格的ID。当我在循环中时:

$(this).parent.attr('id');

但是我收到了一个错误。我的语法合适吗?

感谢。

编辑:

<table id="21-rawTable" border="1"><tbody><tr class="even notSelected eClr" name="0" id="beaf-32;Developmental-Stage_Embryo-0-12h;ChIP-chip;Rep-1;input;Dmel_r54;modENCODE_21;BEAF_Input_0.CEL" title="/modencode/modencode-dcc/symbolic_links/Dmel_r5.4/Non-TF-Chromatin-binding-factor/ChIP-chip/raw-arrayfile_CEL/beaf-32/Embryo 0-12h/" style="cursor:pointer;" "="" onclick="selected('beaf-32;Developmental-Stage_Embryo-0-12h;ChIP-chip;Rep-1;input;Dmel_r54;modENCODE_21;BEAF_Input_0.CEL','[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]')"><td class="checkbox"><input type="checkbox" id="beaf-32;Developmental-Stage_Embryo-0-12h;ChIP-chip;Rep-1;input;Dmel_r54;modENCODE_21;BEAF_Input_0.CELcheckBox" checked=""></td><td>beaf-32;Developmental-Stage_Embryo-0-12h;ChIP-chip;Rep-1;input;Dmel_r54;modENCODE_21;BEAF_Input_0.CEL</td><td>0 bytes</td></tr><!-- table--></tbody></table>

使用此代码获取表的id,在本例中为“21-rawTable”

$(".selected").each(function () {
var parentname = $(this).parent().attr('id');
        alert (parentname);
});

我解决了这个问题。我认为它给了我直接的父母。相反,我不得不寻找最近的祖先:

var parentname = ($(this).closest('table')).attr('id');

感谢。

3 个答案:

答案 0 :(得分:7)

parent [API Ref] 是一种方法,因此您应该像这样调用它:

$(this).parent().attr('id');

答案 1 :(得分:2)

我认为您需要在调用parent()函数时包括括号。

答案 2 :(得分:1)

我在示例HTML中看不到任何带有class='selected'的标记。但是:

  • 复选框的父级是TD。
  • TD的父母是TR。
  • TR的父母是TBODY。
  • TBODY的父级是TABLE。

您可以使用.closest(selector)从其中的任何位置获取表祖先,但是:

$(this).closest('table').attr('id');

http://api.jquery.com/closest/