如何使用jQuery选择第一个父DIV?

时间:2011-08-17 07:27:34

标签: javascript jquery css-selectors

var classes = $(this).attr('class').split(' '); // this gets the current element classes

var classes = $(this).parent().attr('class').split(' '); // this gets the parent classes.

上述情况中的父母是ankor。

如果我想获得$(this)的第一个父DIV代码是什么样的?

var classes = $(this).div:parent().attr('class').split(' '); // just a quick try.

* 基本上我想得到$(this)的第一个父DIV的类。

THX

5 个答案:

答案 0 :(得分:150)

使用.closest()遍历DOM树到指定的选择器。

var classes = $(this).parent().closest('div').attr('class').split(' '); // this gets the parent classes.

答案 1 :(得分:38)

使用.closest(),它获取与给定选择器'div'匹配的第一个祖先元素:

var classes = $(this).closest('div').attr('class').split(' ');

编辑:

正如@Shef指出的那样,.closest()将返回当前元素,如果它恰好也是DIV。要考虑到这一点,请先使用.parent()

var classes = $(this).parent().closest('div').attr('class').split(' ');

答案 2 :(得分:9)

如果是div,则获取父级。然后就上课了。

var div = $(this).parent("div");
var _class = div.attr("class");

答案 3 :(得分:4)

保持简单!

var classes = $(this).parent('div').attr('class');

答案 4 :(得分:0)

两个最佳选择是

$(this).parent("div:first")

$(this).parent().closest('div')

当然,您可以通过以下方式找到类attr

$(this).parent("div:first").attr("class")

$(this).parent().closest('div').attr("class")