jquery获取曾曾曾祖父母的ID



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

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

请注意,如果有帮助的话,我正在查找ID的div有类"MyClass"。

谢谢。

您也可以尝试closest来获取如下属性:

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

或者第二种方式是

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

请参见此处:http://jsfiddle.net/sKqBL/10/

获取所有.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

你对更好的定义是什么?

//POJS, fastest
var TheID = this.parentNode.parentNode.parentNode.parentNode.parentNode.id;
//jQuery, terse
var TheID = $(this).closest(".MyClass").prop("id");
var TheID = $('.MyClass').attr('id');

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

这就是你的意思吗?将获得.MyClass 的ID

您可以使用.parents

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

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

如果是这样的话,可以考虑为曾曾曾祖指定一个唯一的CSS类名。然后你应该能够做这样的事情:

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

当然,如果你这样做,你可能不需要曾曾祖父母的id。

最新更新