ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > JavaScript > 【jQuery】attrメソッドでCSSの属性を自由に操作しよう!

【jQuery】attrメソッドでCSSの属性を自由に操作しよう!

JavaScript

2022/03/18

2023/05/06

jQuery attr記事サムネイル

CSSの属性値をjQueryで自由に制御して、思った通りの動きを実現したい。

そんなときに使えるのがjQueryのattrメソッドです。attrメソッドを使用すれば、HTML要素の属性を追加・削除・取得・変更ができるようになります。

記事の前半ではattrメソッドの基礎知識について解説します。

記事の後半ではattrメソッドを使った簡単なプログラムも解説しております。ぜひ最後までチェックしてみてくださいね。

この記事で身につく内容
  • jQueryのattrメソッドの基礎知識

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

jQueryのattrメソッドとは

attrとはattribute(属性:アトリビュート)の略称です。attrメソッドは、class属性やid属性など「属性」を追加・削除・取得・変更することができるメソッドです。

基本書式は下記のようになります。

attrメソッドの基本書式

$("セレクタ").attr("属性名");

属性名は、classやid、valueなどが当たります。

 

attrメソッドで属性値取得

attrメソッドで属性取得する場合は次のようになります。

  <p class="test">属性を指定していないpタグです</p>
const class_text = $('p').attr('class');
console.log(class_text);
出力結果
console画面

class属性の属性値を取得したいためattr()の中に属性名を記述しました。その結果、コンソール画面で属性値であるtestを取得することができました。

なお、pタグに属性を指定していない場合でattrメソッドを使用すると、undefined(定義されていない)となります。

attrメソッドで属性追加

属性テキスト追加する場合は次のようになります。

<p>class属性を指定したpタグです</p>
const class_text = $('p').attr('class', 'new'); // attr('属性名', '指定したい属性値');
出力結果
attr-new

元のpタグにはclass属性が適用されていませんでしたが、attrメソッドによって「class属性」と「属性値:new」を追加することができました。

複数の属性値を追加する場合は次のようになります。

const NewClass_text = $('p').attr('class', 'new new2'); // attr('属性名', '属性値1 属性値2 属性3...');

出力結果

attr-new new2

removeAttrメソッドで属性削除

属性削除する場合は次のようになります。

<p class="remove">class属性を指定したpタグです</p>
const RemoveClass_text = $('p').removeAttr('class'); //removeAttr('削除したい属性名');

出力結果

attr-remove

pタグに適用したclass属性を削除することができました。

 

複数の属性を指定する方法

複数の属性をまとめて指定する場合は下記のようになります。

<p>複数の属性を指定したpタグです</p>
const type = $('p').attr({
  class: 'test',
  id: 'id2',
  value: 'val',
  checked: 'true',
  name: 'name'
});

出力結果

attr-複数

複数の属性を指定することができました。

ZeroPlusgate50教材の動画

attrメソッドを使って色を変更してみよう

attrメソッドを使ってボタンをクリックしたら下記HTMLのpタグの文字色を変更してみます。

  <p>ボタンを押したら色が変わります。</p>
  <button id="js-red">赤</button>
  <button id="js-blue">青</button>
  <button id="js-green">緑</button>
  <button id="js-init">元に戻す</button>
.color-red {
  color: red;
}

.color-blue {
  color: blue;
}

.color-green {
  color: green;
}
const colorRed = $('#js-red');
const colorBlue = $('#js-blue');
const colorGreen = $('#js-green');
const colorInit = $('#js-init');
const text = $('p');

colorRed.on('click', function () {
  text.attr('class', 'color-red');
});

colorBlue.on('click', function () {
  text.attr('class', 'color-blue');
});

colorGreen.on('click', function () {
  text.attr('class', 'color-green');
});

colorInit.on('click', function () {
  text.removeAttr('class');
});

出力結果

See the Pen attrメソッド by ZeroPlus (@zeroplus-programming) on CodePen.

上記コードの仕組みとしては、まずHTMLのbuttonタグをクリックしたときの挙動をjQueryで動きを制御するためidを付与します。

buttonをクリックしたらpタグにclass属性が追加される」ようにjQueryで制御します。

クリックしたときclass属性が追加されたら文字色を変更したい」ので、CSSにはcolor-redクラス、color-blueクラス、color-greenクラスをそれぞれ適用しています。

 

jQueryでは下記の要素をそれぞれ取得して変数に格納します。

const colorRed = $('#js-red');
const colorBlue = $('#js-blue');
const colorGreen = $('#js-green');
const colorInit = $('#js-init');
const text = $('p');

そして下記のようにbuttonタグがクリックされたら、attrメソッドでclass属性が追加されるように記述します。

colorRed.on('click', function () { //「赤」のbuttonタグをクリックしたら
  text.attr('class', 'color-red'); // pタグにclass属性のcolor-red属性値を付与する
});

colorBlue.on('click', function () { //「青」のbuttonタグをクリックしたら
  text.attr('class', 'color-blue'); // pタグにclass属性のcolor-blue属性値を付与する
});

colorGreen.on('click', function () { //「緑」のbuttonタグをクリックしたら
  text.attr('class', 'color-green'); // pタグにclass属性のcolor-green属性値を付与する
});

colorInit.on('click', function () { //「元に戻す」のbuttonタグをクリックしたら
  text.removeAttr('class'); // pタグのclass属性を削除する
});

それぞれのボタンをクリックすれば、前のclass属性が上書きされてクリックしたボタンのclass属性が追加されます。元の文字色にする場合はinitボタンをクリックします。その結果pタグのclass属性を削除され、動きを実現しています。

まとめ

attrメソッドは上記サンプルコードのように、属性の取得・変更・削除などすることができる便利なメソッドです。まとめて属性を設定することもできるので、状況に合わせて適切に使用しましょう!

記事を読むだけでなく、ぜひ実際に手を動かしてコード理解を深めていきましょう!

 

attrメソッドまとめ

  • attrはattribute(属性:アトリビュート)の略称。
  • attrメソッドは、属性を取得・追加・削除・変更することができる。
  • class,id,valueなどが属性名。
  • 属性名に付与されている値が属性値。
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから