16

我找不到这个问题的快速答案……</p>

我在点击事件中并使用$(this)

我试图在不知道它有什么选择器的情况下选择三个级别的元素。

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

这很好用,但是有更好的方法吗?

喜欢parent(3x)还是类似?

4

3 回答 3

37

您可以尝试使用eq()with parents()。eq() 是零基索引,因此第一个元素的索引为零,第三个元素的索引为 2。

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

这等于:

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

.parents() 方法允许我们在 DOM 树中搜索这些元素的祖先,并根据从直接父元素向上排序的匹配元素构造一个新的 jQuery 对象;元素按从最近的父元素到外部元素的顺序返回, 参考

于 2013-05-03T14:41:37.090 回答
8

.eq()像这样使用.parents()

$(this).parents().eq(2).attr("id");
于 2013-05-03T14:41:49.670 回答
7

你也可以试试。

$(this).parents(':eq(2)');  //and then get ID
于 2013-05-03T14:42:26.633 回答