jquery获得伟大的伟大曾祖父母的身份证

时间:2012-03-24 17:47:51

标签: javascript jquery

如果我有这条线,我想知道是否有更好的方法。

var TheID = $(this).parent().parent().parent().parent().parent().attr('id');

请注意,我正在寻找ID的div具有“MyClass”类,如果可以帮助的话。

感谢。

6 个答案:

答案 0 :(得分:8)

你也可以试试closest获取get属性:

 $(this).closest('div.Myclass').attr('id');

或第二种方式是

$(this).parents('div.Myclass').attr('id')

见这里:http://jsfiddle.net/sKqBL/10/

答案 1 :(得分:2)

获取所有.parents(),并使用.eq() ...

$(this).parents().eq(5).attr('id');

...或:eq()选择器...

$(this).parents(':eq(5)').attr('id');

......或制作一个功能......

function up(el, n) {
    while(n-- && (el = el.parentNode)) ;
    return el;
}

...并像这样使用它......

up(this, 5).id

答案 2 :(得分:0)

var TheID = $('.MyClass').attr('id');

var TheID = $('#MyClass').attr('id');
这是什么意思?这将获得.MyClass的ID

答案 3 :(得分:0)

您可以使用.parents

var TheID = $(this).parents(".MyClass").attr('id');

答案 4 :(得分:0)

你对更好的定义是什么?

//POJS, fastest
var TheID = this.parentNode.parentNode.parentNode.parentNode.parentNode.id;

//jQuery, terse
var TheID = $(this).closest(".MyClass").prop("id");

答案 5 :(得分:0)

您尝试检索的ID是否是动态生成的,因此您不知道它是什么?

如果是这样,请考虑为伟大的曾祖父母分配一个独特的CSS类名。然后你应该可以做这样的事情:

$(".MyGreatGreatGreatGrandparentCssClass").attr("id");

当然,如果你这样做,你可能不需要伟大的祖父母的身份。