如果我有这条线,我想知道是否有更好的方法。
var TheID = $(this).parent().parent().parent().parent().parent().attr('id');
请注意,我正在寻找ID的div具有“MyClass”类,如果可以帮助的话。
感谢。
答案 0 :(得分:8)
你也可以试试closest
获取get属性:
$(this).closest('div.Myclass').attr('id');
或第二种方式是
$(this).parents('div.Myclass').attr('id')
答案 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");
当然,如果你这样做,你可能不需要伟大的祖父母的身份。