attr( attributeName, function( [index][, oldValue] ) )

jQuery API の attr( attributeName, function( [index][, oldValue] ) ) は、「attributeName」に指定した属性の値を関数で設定するメソッド。インデックス番号と現在の属性値を、関数に引き渡すことができる。1つ目の引数が、インデックス番号。2つ目の引数が、現在の属性値。

記述方法

jQuery( 'セレクター' ) . attr( '属性名', function( インデックス, 現在の属性値 ) ) {
    return 新しい属性値;
} );

「セレクター」に指定した要素の「属性名」に指定した属性の値を、function関数で設定する。その際、「セレクター」に指定した要素の、インデックス番号と、「属性名」に指定した属性の現在の値を、function関数に引き渡すことができる。

実装例(サンプル)

  • 項目1
  • 項目2
  • 項目3

実装例(サンプル)の動作について

「属性値変更」ボタンをクリックすると、「項目1」を赤色に、「項目2」を青色に、「項目3」を緑色にする。

「属性値変更」ボタンを再度クリックすると、すべての項目を灰色に戻す。

実装例(サンプル)のソースコード

JavaScript

<script type="text/javascript">
<!--
jQuery( function() {
    jQuery( '#jquery-sample-button' ) . toggle(
        function() {
            jQuery( '#jquery-sample-ul li' ) . attr( 'class', function( index, oldValue ) {
                return oldValue + '-' + index;
            } );
        },
        function() {
            jQuery( '#jquery-sample-ul li' ) . attr( 'class', 'jquery-sample-li' );
        }
    );
} );
// -->
</script>

CSS

<style>
<!--
.jquery-sample-li {
    color: gray;
}
.jquery-sample-li-0 {
    color: red;
}
.jquery-sample-li-1 {
    color: blue;
}
.jquery-sample-li-2 {
    color: green;
}
-->
</style>

HTML

<p>
    <button id="jquery-sample-button">属性値変更</button>
</p>
<ul id="jquery-sample-ul">
    <li class="jquery-sample-li">項目1</li>
    <li class="jquery-sample-li">項目2</li>
    <li class="jquery-sample-li">項目3</li>
</ul>

スポンサード リンク

カテゴリー: API, DOM操作, JavaScript, jQuery, 一般的属性, 属性 タグ: パーマリンク