如果我有这行,我想知道是否有更好的方法。
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。