目次
目的
- インラインの CSS を変更したい。
- <style> の中に書く通常の書式。
- 一行で複数の CSS を設定したい。
- setAttribute メソッドで変更したい。
テストしてみました。
サンプル
以下の URL にサンプルページを準備してみました。
- JavaScript で CSS 変更( setAttribute メソッド編)
- https://pulogu.net/wordpress/wp-content/uploads/2023/11/js-setAttribute-method-css-change.html
サンプルページ内に <div> タグが 2 つ作成してあります。 id 名は「div1」と「div2」になっています。
<div id="div1">id=div1</div>
<div id="div2">id=div2</div>
背景色
下記コードを実行してみました。 div1 の背景色をライムに変更する内容になっています。 setAttribute メソッドに設定する CSS は通常の書式で良いようです。
function test1(){
let a=document.getElementById("div1"); //div1 タグをオブジェクトで取得
a.setAttribute("style","background-color:lime"); //属性名、値を設定
}
test1();
実行結果は、以下のようになりました。 div1 の背景色がライムに変更されました。
この時、 div1 の動的な HTML ソースは以下のようになっていました。 style 属性が追加されたようです。
<div id="div1" style="background-color:lime">id=div1</div>
値取得
値を取得する下記コードを実行してみました。 getAttribute メソッドで値を取得しています。
function test2(){
let a=document.getElementById("div1"); //div1 タグをオブジェクトで取得
let b=document.getElementById("div2"); //div2 タグをオブジェクトで取得
a.setAttribute("style","background-color:lime"); //属性名、値を設定
let c=a.getAttribute("style"); //値取得
b.textContent=c; //値出力
}
test2();
実行結果は、以下のようになりました。 div1 の style 属性の値を取得出来たようです。
div1 , div2 の動的な HTML ソースは以下のようになっていました。
<div id="div1" style="background-color:lime">id=div1</div>
<div id="div2">background-color:lime</div>
枠線
上記 test1() , test2() の実行後に、下記 test3() を実行してみました。枠線を 24px に変更する内容になっています。
function test3(){
let a=document.getElementById("div1");
let b=document.getElementById("div2");
a.setAttribute("style","border-width:24px"); //枠線変更
let c=a.getAttribute("style");
b.textContent=c;
}
test3();
実行結果は以下のようになりました。枠線のみ変更されたようです。
div1 の動的な HTML は以下のようになりました。 style 属性の値が上書きされて置き換わっているようです。
<div id="div1" style="border-width:24px">id=div1</div>
複数指定
背景色と枠線を同時に変更する下記コードを実行してみました。
function test4(){
let a=document.getElementById("div1");
let b=document.getElementById("div2");
a.setAttribute("style","background-color:lime;border-width:24px");
let c=a.getAttribute("style");
b.textContent=c;
}
test4();
実行結果は、以下のようになりました。複数の CSS を変更する事が出来ました。
div1 の動的な HTML は以下のようになっていました。
<div id="div1" style="background-color:lime;border-width:24px">id=div1</div>
テスト環境
- Mozilla Firefox 120.0 (64 ビット)
- Windows10(64 ビット)
以上、閲覧ありがとうございました。
- [ Amazon.co.jp アソシエイト ] JavaScript 関係の本
- https://amzn.to/48EoeGM