目次

目的

  • インラインの 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 タグです。
サンプルページ内の div タグです。
<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 の背景色がライムに変更されました。

test1() の実行結果です。
test1() の実行結果です。

この時、 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 属性の値を取得出来たようです。

test2() の実行結果です。
test2() の実行結果です。

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();

実行結果は以下のようになりました。枠線のみ変更されたようです。

test1() , test2() 実行後に、 test3() を実行した結果です。
test1() , test2() 実行後に、 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 を変更する事が出来ました。

test4() の実行結果です。
test4() の実行結果です。

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

同じカテゴリの投稿(JavaScript)

前後の投稿