jQuery API の parent( [selector] ) は、マッチした要素の親要素を選択するメソッド。selectorを指定した場合、親要素がselectorにマッチすれば、選択する。
記述方法
jQuery( セレクター ) . parent();
「セレクター」にマッチする要素の親要素を選択。
jQuery( セレクター1 ) . parent( セレクター2 );
「セレクター1」にマッチする要素の親要素が、「セレクター2」にマッチすれば選択。
記述例
jQuery( '#sample' ) . parent();
idが「sample」である要素の親要素を選択。
jQuery( '#sample' ) . parent( '.sample-parent' );
idが「sample」である要素の親要素のクラス名が「sample-parent」であれば選択。
実装例(サンプル)
実装例(サンプル)の動作について
クリックしたボックス要素の親要素の背景色をピンク色にする。再度クリックすると、元に戻す。
クリックしたボックス要素の親要素のクラス名が「jquery-sample-border」であれば、枠線の色を赤色にする。再度クリックすると、元に戻す。
実装例(サンプル)のソースコード
JavaScript
<script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-1 div' ) . toggle(
function() {
jQuery( this ) . parent() . css( 'backgroundColor', 'pink' );
jQuery( this ) . parent( '.jquery-sample-border' ) . css( 'border', '1px solid red' );
},
function() {
jQuery( this ) . parent() . css( 'backgroundColor', 'yellow' );
jQuery( this ) . parent( '.jquery-sample-border' ) . css( 'border', '1px solid gray' );
}
);
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-1 div' ) . toggle(
function() {
jQuery( this ) . parent() . css( 'backgroundColor', 'pink' );
jQuery( this ) . parent( '.jquery-sample-border' ) . css( 'border', '1px solid red' );
},
function() {
jQuery( this ) . parent() . css( 'backgroundColor', 'yellow' );
jQuery( this ) . parent( '.jquery-sample-border' ) . css( 'border', '1px solid gray' );
}
);
} );
// -->
</script>
CSS
<style type="text/css">
<!--
#jquery-sample-1,
#jquery-sample-1 div {
margin: 23px;
background-color: yellow;
border: 1px solid gray;
border-radius: 10px;
cursor: pointer;
}
#jquery-sample-1 {
width: 200px;
height: 200px;
}
#jquery-sample-2 {
width: 150px;
height: 150px;
}
#jquery-sample-3 {
width: 100px;
height: 100px;
}
#jquery-sample-4 {
width: 50px;
height: 50px;
}
-->
</style>
<!--
#jquery-sample-1,
#jquery-sample-1 div {
margin: 23px;
background-color: yellow;
border: 1px solid gray;
border-radius: 10px;
cursor: pointer;
}
#jquery-sample-1 {
width: 200px;
height: 200px;
}
#jquery-sample-2 {
width: 150px;
height: 150px;
}
#jquery-sample-3 {
width: 100px;
height: 100px;
}
#jquery-sample-4 {
width: 50px;
height: 50px;
}
-->
</style>
HTML
<div id="jquery-sample-1">
<div id="jquery-sample-2" class="jquery-sample-border">
<div id="jquery-sample-3">
<div id="jquery-sample-4"></div>
</div>
</div>
</div>
<div id="jquery-sample-2" class="jquery-sample-border">
<div id="jquery-sample-3">
<div id="jquery-sample-4"></div>
</div>
</div>
</div>