この記事では、setAttributeを使って属性を操作していきます。
setAttribute
setAttributeは指定した要素に属性を追加する、または既存の属性を変更します。
使い方
setAttribute('属性の名前', '新しい属性')
という形式で使用します。
属性の追加
下記のソースコードにclassを追加してみます。
追加するのはbtnクラスです。
<a href="https://web-tsuku.life/" id="sample">ウェブつく</a>
.btn {
background-color: blue;
color: white;
border-radius: 3px;
padding: 5px;
text-decoration: none;
}
var sample = document.getElementById('sample');
sample.setAttribute('class', 'btn');
sample.setAttribute('class', 'btn')
によってclassを追加しています。
class追加前と追加後では下記のように表示が変わります。
属性の変更
属性の変更も同じようにできます。
<a href="https://web-tsuku.life/" id="sample">ウェブつく</a>
var sample = document.getElementById('sample');
sample.setAttribute('id', 'sample2');
上記のように指定することで、id名が上書きされ、変更されます。
変更後のソースコード↓
<a href="https://web-tsuku.life/" id="sample2">ウェブつく</a>
setAttributeのデモ
それではsetAttributeを使ったデモを作ってみます。
「ラジオボタンの選択肢によって表示画像を変える」というプログラムです。
サンプルコード
<label><input type="radio" name="sample" id="a" onclick="changeImg(this)">画像Aを表示</label>
<label><input type="radio" name="sample" id="b" onclick="changeImg(this)">画像Bを表示</label>
<!-- デフォルト画像を表示 -->
<img src="https://web-tsuku.life/wp-content/uploads/2019/06/setattribute-default.png" id="target">
function changeImg(radio) {
var radio_id = radio.id;
var target = document.getElementById('target');
target.setAttribute('src', 'https://web-tsuku.life/wp-content/uploads/2019/06/set_attribute_' + radio_id + '.png')
}
サンプルコードでは、選択されたラジオボタンのidを取得し、setAttributeで画像のsrcを変更しています。
画像ファイル名にidを組み込み、表示ファイル名を変更しています。