jQuery の prop メソッドを使用すると、attr メソッドと同様に 要素の属性に対して 値を設定したり変更したりすることができます。
そして、 checked や selected のように、指定されていれるか否かを true 又は false で表すことができる属性(真偽値属性)には、prop メソッドの使用が向いています。
今回は、jQuery の prop メソッドの使い方と attr メソッドとの違いを解説いたします。
attr メソッドの使用方法についてはjQuery【 attr 】属性に値を設定する attr と 削除する removeAttrをご参照下さい。
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
prop メソッドは、引数によって 4 通りの記述方法があります。
$(セレクタ).prop( name );
$(セレクタ).prop( name, value );
$(セレクタ).prop( map );
$(セレクタ).prop( name, function(index, prop) );
prop メソッドの引数の内容は、それぞれ以下の通りです。
.prop( name )
name |
---|
属性の名前を指定 |
.prop( name, value )
name |
---|
属性の名前を指定 |
value |
設定する値を指定 |
.prop( map )
map |
---|
属性の名前と値との Map 値を指定 (まとめて要素の属性を設定することが可能となる) |
.prop( name, function(index, prop) )
name |
---|
属性の名前を指定 |
function(index, prop) |
新しい属性値を戻り値として返す関数を指定 index:要素の index prop:変更前の属性値 |
prop メソッドを使用して、ラジオボタンの属性( checked )を変更します。
各ボタンをクリックしてみて下さい。
YES | NO |
上のサンプルのソースコードは次の通りです。
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {
$("#btn1").on("click", function() {
$("#ch_yes").prop("checked", true);
});
$("#btn2").click(function() {
$("#ch_no").prop("checked", true);
});
});
</script>
<div style="background-color : #CCC; padding : 20px;">
<table>
<tr><td>
<input type="button" id="btn1" value="YESにチェック">
</td><td>
<input type="button" id="btn2" value="NOにチェック">
</td></tr>
<tr><td>
<input type="radio" name="rep" id="ch_yes">YES
</td><td>
<input type="radio" name="rep" id="ch_no">NO
</td></tr>
</table>
</div>
上のサンプルでは、「 .prop( name, value ) 」の形で次のように記述し、属性変更を行っています。
$("#ch_yes").prop("checked", true);
また、上のサンプルは name に同じ値を設定したラジオボタンのため value 値 に「 true 」を設定した要素以外は自動的にチェックが外れますが、次のように記述して value 値 に「 false 」を設定すると、意図的にチェックを外すことができます。
$("#ch_yes").prop("checked", false);
attr メソッドと prop メソッドとは、共に 要素の属性に対して 値を操作できるメソッドであり、記述方法も同じですが、checked など 指定されていれるか否かを true 又は false で表すことができる属性( 真偽値属性 )の属性値を取得する際に、その戻り値に違いがあります。
属性 | メソッド | 戻り値 |
---|---|---|
checked | prop | true / false |
attr | “checked” / “” | |
selected | prop | true / false |
attr | “selected” / “” | |
disabled | prop | true / false |
attr | “disabled” / “” | |
multiple | prop | true / false |
attr | “multiple” / “undefined” |
上記の通り、真偽値属性の属性値を取得する際に、prop メソッドは真偽値( true 又は false )で取得できますが、attr メソッドは文字列で取得します。
if 文の条件式の中で戻り値を使用する場面等を考えると、戻り値は文字列より真偽値で取得した方が 後続処理の正確性が保たれます。
ですので、真偽値属性に関する操作を行う場合は、prop メソッドを使用するようにしましょう。
jQueryのprop メソッドについて、いかがでしたでしょうか。
「Webプログラマになりたいけど、独力では限界がある」と感じている方には、「プログラマカレッジ」がおすすめです。
「プログラマカレッジ」は本気でプログラマを目指す方のための、就職支援付き、受講料無料のプログラミングスクールです。
今回ご紹介した「jQuery」を含む豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。
INTERNOUS,inc. All rights reserved.