jQuery「attr」で属性値を取得/設定する方法


jQueryのメソッド「.attr() 」は、要素の「属性値を取得/設定する」事ができるメソッド。
今回は、jQueryで「属性値を取得/設定できる」メソッド「.attr()」について、その使い方をサンプルを交えて解説しよう。
目次
属性、属性値とは?
.attr()
で属性の値を取得できるという事だが、「属性」とは何を指すのか?
例えば、次のHTMLで属性にあたるものはどれだろうか?
<ul id="nav">
<li class="current"><a href="https://test.com" target="_blank">リンク1</a></li>
</ul>
属性
このHTMLで「属性」にあたるものは、id
やclass
やhref
やtarget
などである。
属性値
id
の属性値はnav
、class
の属性値はcurrent
、hrefの属性値はhttps://test.com
、target
の属性値は_blank
ということになる。
.attr()と.prop()の違いは?
.attr()
は「属性」、.prop()
は「プロパティ」を操作できるメソッドで、ほとんど同じような働きをする。
「属性」はHTMLの情報で、「プロパティ」は「JavaScriptが独自に保持するHTMLの属性情報」で、基本的には同じ内容の情報なのだが、次の例のように一部異なるものがある。
.attr()
はHTML属性を取得・設定できるメソッドで、「実行時点でHTMLコードに記述されている情報」しか取得できないので、フォームのchecked
やdisabled
やselected
やmultiple
などユーザーの操作後の値を取る事はできなかった。
そこで、jQuery1.6より新たに、JavaScriptが保有する「プロパティ」を操作できる.prop()
メソッドが追加されたのだ。
例えば次のようなチェックボックスで初期値でチェックが入っていないものを.prop()
と.attr()
でそれぞれ値を取得してみると
<input type="checkbox" >
.prop()
は「false」と返すのに対して、.attr()
では「undefined」と返す。
その後、ユーザーがチェックを入れた後に同じ様に.prop()
と.attr()
でそれぞれ値を取得してみると、.prop()
は「true」と返すのに対して、.attr()
では、チェックが入っているのにも関わらず、また「undefined」と返してしまう(ユーザーがチェックを入れてもHTMLが書き換わるわけではない為)。
つまり、フォーム関連やchecked
やdisabled
やselected
などの場合は、.attr()
ではなく、.prop()
を使って操作すると良いという事だ。
.prop()
メソッドについて詳しく知りたい方はこちらの記事をどうぞ。
.attr()の構文
.attr()
では属性値を「取得」と「設定」ができる。また、「一度に複数の属性の値」を設定する事もできるので、順番に解説していこう。
属性値を取得する構文
$("セレクタ").attr("属性名");
セレクタで指定した要素に対して.attr()
のパラメータで「属性名」だけを記述した場合は、その属性値を取得できる。
ただし「取得」した値を、後で使う場合は、次のように変数に格納すると良い。
var hoge = $("a").attr("src");
属性値を設定する構文
$("セレクタ").attr("属性名","属性値");
属性値を変更したい要素を「セレクタ」で指定し、.attr()
のパラメータの第1引数で「属性名」、さらに,
で区切った後の第2引数で「属性値」を指定する事で、指定要素の「属性値」を変更する事ができる。
一度に複数の属性値を設定する構文
$("セレクタ").attr({属性名:"値",属性名:"値",属性名:"値"});
一度に複数の属性の値をセットする場合はオブジェクト形式で{}
の中で属性名:"値",
の組み合わせを複数設定する事ができる!
jQueryで.attr()を使って属性値を取得して、その値を設定する例
まずaタグのhref
の値を取得して、その値を別のaタグに設定する例で見ていこう。
$(function(){
var seturl = $("#nav a").attr("href");
$("#set a").attr("href", seturl);
});
<div id="nav">
<a href="https://www.yahoo.co.jp/">リンク1</a>
</div>
<div id="set">
<a href="https://www.msn.com/ja-jp">リンク2</a>
</div>
<div id="nav">
<a href="https://www.yahoo.co.jp/">リンク1</a>
</div>
<div id="set">
<a href="https://www.yahoo.co.jp/">リンク2</a>
</div>
このように書く事で$("#nav a")
の「hrefの値」を、一旦変数seturl
に格納した上で、さらに$("#set a")
の「hrefの値」をhttps://www.msn.com/ja-jp
からhttps://www.yahoo.co.jp/
に変更することができる。
jQueryで.attr()を使って、一度に複数の属性値を設定する方法
一度に複数の属性値を設定する例として、aタグのhref
とtarget
とclass
の3つの値を設定する例で見ていこう。
$(function(){
$("#set a").attr({href:"https://www.yahoo.co.jp/", target:"_blank",class:"other"});
});
<div id="set">
<a href="https://www.msn.com/ja-jp">リンク</a>
</div>
<div id="set">
<a href="https://www.yahoo.co.jp/" target="_blank" class="other">リンク1</a>
</div>
このように書く事で、aタグのhref
とtarget
とclass
の3つの値を一度に設定する事ができる!
属性を削除する方法
.attr()
とは逆に「属性を削除」する場合は、.removeAttr()
メソッドを使う事になる。
.removeAttr()
についてはこちらの記事を参考にしよう。
フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!
JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。
短期間でフロントエンド・WEBデザインをマスターするには?
私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感)
では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う。
- 学習スタイルが自分に合っているか?
- 低価格でコスパの良い学習料金か?
- 講師に質問しやすい環境か?
- 無料体験できるスクールか?
数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓
jQuery「attr」で属性値を取得/設定する方法のまとめ
以上、jQueryで「.attr()を使って、属性値を取得/設定する」方法でした。
その他のjQueryメソッドについて確認したい方は、jQueryメソッドを一覧で解説したこちらの記事を確認しておこう!
※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項
関連記事

Jqueryでクロスフェードスライドショーの作り方(デザイナーでも出来る自作編)

jQuery「prepend / prependTo」で要素内の先頭にHTMLを挿入する

jQueryの全セレクタのまとめ「完全マスター辞典!」

jQuery「removeClass」で指定のクラスを削除する方法

jQuery「insertBefore」でHTMLを「指定要素の直前」に移動する

jQuery「unwrap」で指定要素を囲むタグを削除する方法

jQuery「reverse」で配列の順番を逆にする方法

videoタグの使い方とJavaScriptでオリジナルコントローラーを自作する方法

Jqueryでスライドショーの作り方(デザイナーでも出来る自作編)

jQuery「wrapAll」で複数の要素を指定のタグで囲う
サイト内検索
新着記事
- YouTubeより詳しく!まとめて学べる『WEBデザイン動画講座』
- Figmaの背景切り抜きプラグイン『Remove BG』のAPI Key取得方法と使い方
- WEBデザイン動画講座のご紹介【お得な割引アリ】
- WixでWEBデザイナーが「ポートフォリオサイト」を作ってみた!
- WEBデザインツールの比較!初心者におすすめは?Figma Photoshop Xd Illustrator
- CodeCampGATE(コードキャンプゲート)とは?転職・就職先と評判
- コードキャンプの「Webデザイン・Webデザイン副業コース」を卒業生が解説!
- テックアカデミー「はじめての副業コース」卒業生が内容を解説!
- PHPの独学!挫折しないおすすめ勉強方法!
- 16インチMacbook Proで使える100Wモバイルバッテリー Zendure SuperTankレビュー
- [体験談] CodeCamp(コードキャンプ)で挫折する理由!
- テックアカデミー「受講した感想・評判」学習内容の総まとめ!
- Photoshop 超リアルな商品写真の鏡面反射の作り方
- デイトラの評判は?詳細内容とメリット・デメリットを解説
- CSSだけ超簡単!画像トリミングできる 「object-fit」 の使い方
- コードキャンプ 「無料体験・カウンセリング」を受講してみた!予約方法や内容の体験談
- デジタルハリウッドSTUDIO by LIGの評判
- PhotoshopでWEBデザインする基本の設定とテクニック
- テックアイエス評判は?現役プロがTECH I.S.を徹底調査!
- WEBデザインの練習・勉強をしながら「お金までもらえる」超おすすめの学習方法!
カテゴリー
タグリスト