web-dev-qa-db-ja.com

jQueryを使用して最初の親DIVを選択する方法は?

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

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

上記の状況での親はアンコールです。

$(this)の最初の親DIVを取得したい場合、コードはどのようになりますか?

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

*基本的に、$(this)の最初の親DIVのクラスを取得します。

tHX

92
Adam

.closest() を使用して、指定したセレクターまでDOMツリーを走査します。

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

指定されたセレクタ'div'に一致する最初の祖先要素を取得する.closest()を使用します。

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

編集:

@Shefが指摘したように、.closest()は、DIVでもある場合、現在の要素を返します。これを考慮するには、最初に.parent()を使用します。

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

Divの場合、これは親になります。その後、クラスを取得します。

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

複雑にしないでおく!

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