jQuery API の is( function( index ) ) は、マッチした要素が、function関数の戻り値とマッチする場合、trueを返すメソッド。インデックス番号を、引数として、function関数に引き渡すことができる。
記述方法
jQuery( セレクター ) . is( function( インデックス番号 ) {
return 条件;
} );
return 条件;
} );
「セレクター」にマッチした要素が、「条件」に一致する場合、trueを返す。インデックス番号を、引数として、引き渡すことができる。
記述例
jQuery( '#jquery-smaple' ) . is( function( index ) {
return jQuery( this ) . text() == 'サンプル';
} );
return jQuery( this ) . text() == 'サンプル';
} );
idが「jquery-smaple」である要素内のテキストノードが、「サンプル」である場合、trueを返す。
実装例(サンプル)
選択:
セルA | セルB | セルA |
セルC | セルA | セルC |
セルB | セルC | セルA |
セルB | セルC | セルC |
セルA | セルB | セルB |
実装例(サンプル)の動作について
「セルA」を選択すると、「セルA」というテキストノードを持つセルの背景色だけを、ピンク色にする。
「セルB」を選択すると、「セルB」というテキストノードを持つセルの背景色だけを、ピンク色にする。
「セルC」を選択すると、「セルC」というテキストノードを持つセルの背景色だけを、ピンク色にする。
実装例(サンプル)のソースコード
JavaScript
<script type="text/javascript">
<!--
jQuery( function() {
jQuery( 'input[name=jquerySampleRadio]' ) . change( function () {
jQuery( 'input[name=jquerySampleRadio]' ) . closest( 'label' ) . css( {
backgroundColor: 'lightgray',
} );
jQuery( 'input:checked[name=jquerySampleRadio]' ) . closest( 'label' ) . css( {
backgroundColor: 'pink',
} );
jQuery( '#jquery-smaple-table td' ) . click();
} ) . change();
jQuery( '#jquery-smaple-table td' ) . click( function () {
var jquerySmapleIs = jQuery( this ) . is( function() {
return jQuery( this ) . text() == jQuery( 'input:checked[name=jquerySampleRadio]' ) . val();
} );
if( jquerySmapleIs ) {
jQuery( this ) . css( 'backgroundColor', 'pink' );
} else {
jQuery( this ) . css( 'backgroundColor', 'white' );
}
} ) . click();
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( 'input[name=jquerySampleRadio]' ) . change( function () {
jQuery( 'input[name=jquerySampleRadio]' ) . closest( 'label' ) . css( {
backgroundColor: 'lightgray',
} );
jQuery( 'input:checked[name=jquerySampleRadio]' ) . closest( 'label' ) . css( {
backgroundColor: 'pink',
} );
jQuery( '#jquery-smaple-table td' ) . click();
} ) . change();
jQuery( '#jquery-smaple-table td' ) . click( function () {
var jquerySmapleIs = jQuery( this ) . is( function() {
return jQuery( this ) . text() == jQuery( 'input:checked[name=jquerySampleRadio]' ) . val();
} );
if( jquerySmapleIs ) {
jQuery( this ) . css( 'backgroundColor', 'pink' );
} else {
jQuery( this ) . css( 'backgroundColor', 'white' );
}
} ) . click();
} );
// -->
</script>
CSS
<style>
<!--
#jquery-smaple-form label {
margin: 5px 10px;
padding: 0 10px 0 5px;
background-color: yellow;
font-size: 15px;
color: #303030;
cursor: pointer;
border-radius: 5px;
}
#jquery-smaple-form label input {
margin: 5px;
cursor: pointer;
}
-->
</style>
<!--
#jquery-smaple-form label {
margin: 5px 10px;
padding: 0 10px 0 5px;
background-color: yellow;
font-size: 15px;
color: #303030;
cursor: pointer;
border-radius: 5px;
}
#jquery-smaple-form label input {
margin: 5px;
cursor: pointer;
}
-->
</style>
HTML
<p id="jquery-smaple-form">選択:
<label>
<input type="radio" name="jquerySampleRadio" value="セルA" checked="checked" />
セルA
</label>
<label>
<input type="radio" name="jquerySampleRadio" value="セルB" />
セルB
</label>
<label>
<input type="radio" name="jquerySampleRadio" value="セルC" />
セルC
</label>
</p>
<table id="jquery-smaple-table">
<tr>
<td>セルA</td>
<td>セルB</td>
<td>セルA</td>
</tr>
<tr>
<td>セルC</td>
<td>セルA</td>
<td>セルC</td>
</tr>
<tr>
<td>セルB</td>
<td>セルC</td>
<td>セルA</td>
</tr>
<tr>
<td>セルB</td>
<td>セルC</td>
<td>セルC</td>
</tr>
<tr>
<td>セルA</td>
<td>セルB</td>
<td>セルB</td>
</tr>
</table>
<label>
<input type="radio" name="jquerySampleRadio" value="セルA" checked="checked" />
セルA
</label>
<label>
<input type="radio" name="jquerySampleRadio" value="セルB" />
セルB
</label>
<label>
<input type="radio" name="jquerySampleRadio" value="セルC" />
セルC
</label>
</p>
<table id="jquery-smaple-table">
<tr>
<td>セルA</td>
<td>セルB</td>
<td>セルA</td>
</tr>
<tr>
<td>セルC</td>
<td>セルA</td>
<td>セルC</td>
</tr>
<tr>
<td>セルB</td>
<td>セルC</td>
<td>セルA</td>
</tr>
<tr>
<td>セルB</td>
<td>セルC</td>
<td>セルC</td>
</tr>
<tr>
<td>セルA</td>
<td>セルB</td>
<td>セルB</td>
</tr>
</table>