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