悩む人jQueryの attr() ってよく見るけど、正直よく分からない…
そんな風に感じたことはありませんか?
属性を操作するって聞いても、そもそも「属性」って何?という状態では、なかなかスムーズに理解できませんよね。
この記事は、jQueryでHTMLの属性を操作したい初心者〜中級者の方に向けて、attr() メソッドの使い方を 基礎から丁寧に解説していきます。



コードを見ても動きの意味がイマイチ掴めない



実際の使い方を知りたい
という方にとって、実践的な知識が詰まった内容になっています。
この機会に attr() メソッドの本質をしっかり掴んで、ワンランク上のjQueryスキルを身につけてみませんか?
- HTMLの「属性」がどういうものかが明確にわかる
- attr() を使った取得・変更・追加・削除の方法がマスターできる
- よく混乱されがちな prop() との違いまで理解できる
jQueryのattr()メソッドとは?
jQueryを使ってHTML要素を操作する際、頻繁に登場するのが attr() メソッドです。
初心者の方からすると



属性って何?



どう使うの?
という疑問も多いでしょう。
しかし、このメソッドを使いこなせば、動的で柔軟なWebサイト作りが可能になります。
ここでは、attr()メソッドの基本的な役割や、なぜ重要なのかをわかりやすく解説していきます。
attr() メソッドは、HTML要素の「属性(attribute)」を取得・設定するための便利な関数です。
たとえば、リンクの href 属性や画像の src 属性、入力フィールドの value などが該当します。
これらの属性にアクセスすることで、JavaScriptだけでは少し手間がかかる処理を、簡潔に記述できるのがjQueryの魅力の一つです。
また、attr() を使えば、静的なHTMLコードを、ユーザーのアクションに応じて動的に変化させることも可能です。
例えば、画像にマウスオーバーした際に画像のソースURLを変更して、画像を切り替える、といったインタラクティブなUIの構築にも活用されます。
これから具体的な使用方法に入り、attr() メソッドの活用方法を一つずつ見ていきましょう。
HTMLの属性とは?
jQueryのattr()メソッドを理解するには、まず「HTMLの属性」そのものを正しく把握しておくことが重要です。
属性は、HTMLタグにさまざまな情報を持たせるために使われますが、初心者のうちはつい曖昧に理解してしまいがちです。
ここでは、HTMLの属性がどういった役割を果たしているのか、なぜWeb開発に欠かせないのかを具体的に解説していきます。
HTMLの属性(attribute)とは、HTMLタグに付加情報を与えるための仕組みです。タグの中に記述され、属性名=”値” という形式で指定します。
たとえば、以下のようなコードを見てみましょう。
<a href="https://example.com" target="_blank">リンク</a>
この場合、href はリンク先のURLを示す属性であり、target はリンクをどのウィンドウで開くか決める属性です。
これらの属性によって、タグの「意味」や「振る舞い」が決定されるわけです。
他にも、id、class、src、alt、value など、さまざまな種類の属性が存在します。
各属性はHTMLの仕様に基づいて設計されており、適切に使用することでSEOやアクセシビリティの向上にもつながります。
つまり、HTMLの属性は、Webページの構造や動作、さらにはユーザー体験にも関わる非常に重要な要素です。
これらを動的に操作できるということは、それだけでWebサイトに多くの表現力を与えられるということになります。
次に、実際にjQueryのattr()メソッドを使って、属性をどのように操作できるのかを詳しく見ていきましょう。
attr()メソッドで属性を操作する
HTMLの属性がどのような役割を持つのかを理解したところで、ここからは jQuery の attr() メソッドを使って、実際に属性を操作する方法について詳しく見ていきましょう。
一連の操作を覚えることで、Webページのインタラクションがより自由自在になります。



初心者の方でもわかりやすいように、具体例を交えて、順を追って解説していきますので、安心してくださいね。
1.属性の取得
まず最初に押さえておきたいのが、「属性の取得」です。
対象の要素が持っている属性値を確認することで、次の操作に繋げることができます。
var link = $('a').attr('href');
console.log(link); // => https://example.com
上記のように、セレクタで要素を取得し、そのまま attr('属性名') を指定するだけで、対象の属性の値を簡単に取得できます。
リンクのURLや画像のパスなどを取得し、ログに表示する、といった処理に便利です。
2.属性の変更
次に、「属性の変更」についてです。既存の属性を別の値に更新したい場合、attr() に第二引数を渡すだけでOKです。
$('img').attr('src', 'new-image.jpg');
このように書くことで、対象の画像要素の src 属性が、新しい画像ファイルに差し替わります。
ユーザー操作やイベント発生時に属性を切り替える場面で、非常に活躍します。
3.属性の追加
HTML要素に新しく属性を追加したい場合も、属性の変更と同じく attr() に第二引数を渡すだけでOKです。
属性がすでに存在する場合は変更になり、存在しない場合は自動的に追加されるのがjQueryの便利なポイントです。
$('img').attr('alt', 'new-image');
画像のaltも属性なので追加可能です。必要に応じて適切に設定しましょう。
4.複数の属性を設定
複数の属性を一度に設定したい場合は以下のようにします。
$('a').attr({
href: 'https://new-url.com',
title: '新しいリンク先'
});
このように書けば、リンクの href と title を同時に設定できます。コードがスッキリするだけでなく、複数の属性を変更する際のミスも防げます。
属性の削除(removeAttr)
最後に、不要になった属性を削除する方法についても触れておきましょう。
attr() メソッドでは削除はできないため、ここでは removeAttr() を使います。
$('a').removeAttr('target');
このコードは、リンクの target 属性を削除します。
このように、jQueryの attr() を使えば、HTMLの属性操作を非常にシンプルに、かつ柔軟に行うことができます。
次に、似たような役割を持つ prop() メソッドとの違いについても解説していきます。
jQueryのattrとpropの違いは?
jQueryで属性を操作していると、attr() だけでなく prop() というメソッドにも出会います。
どちらも「属性を取得・設定する」ように見えるため、



この2つは何が違うの?
と混乱する方も少なくありません。
実際には、用途によって使い分けが必要であり、場面によって適切なメソッドを選ばないと、思ったような動作をしない場合もあります。
ここでは attr() と prop() の違いを具体例を交えながら解説し、使い分けのポイントを明確にします。
attr()は「HTML属性」にアクセス、prop()は「DOMプロパティ」にアクセス
まず基本的な違いは以下の通りです。
- attr() は HTML属性(HTMLタグに書かれている内容)を対象にします。
- prop() は DOMプロパティ(ブラウザ上で動的に保持される状態)を対象にします。
一見ややこしく感じますが、具体的な例を見ると理解が深まります。
具体例:checkboxの「checked」
以下のようなチェックボックスがあるとします。
<input type="checkbox" checked>
この場合、HTMLの時点で checked 属性が付いています。
しかし、jQueryでこのチェック状態を判定するときに attr() を使うと意図しない結果になることがあります。
$('input').attr('checked'); // => "checked"(HTMLに記述されているかどうか)
$('input').prop('checked'); // => true または false(現在の状態)
上記のように、attr() はHTMLに checked が書かれているかどうかを見ます。
一方、prop() は、実際にチェックされているか(状態)を返すのです。
つまり、動的な状態を扱いたいときは prop() を使うのが正解です。
よく使うプロパティ例
prop() を使う場面は他にもあります。
- disabled(無効状態のボタンなど)
- selected(選択状態のオプション)
- readonly(読み取り専用かどうか)
これらの状態はユーザー操作によって変化するため、prop() を使って取得・設定するのが基本です。
attr() を使うのは静的情報の取得・変更時
逆に attr() が活躍するのは、HTMLに書かれた静的な情報を取得・変更したいときです。
- href:リンク先のURL
- src:画像のパス
- title:ツールチップテキスト
これらは基本的にユーザー操作で変化するものではないため、attr() を使って問題ありません。
使い分けの目安まとめ
| 操作対象 | 適切なメソッド |
|---|---|
| 動的に変わる状態(チェック、無効化など) | prop() |
| HTMLに書かれた属性値(リンク、画像など) | attr() |
この違いを正しく理解しておけば、jQueryのコードがより意図通りに動作するようになりますし、デバッグの際にも迷わなくなるでしょう。
より実践的なattr()メソッドのサンプル
基本がわかってきたところで、次は実際に使えるattr()メソッドのサンプルを見ていきましょう。全てサンプルコードも載せていますので、コピーして色々試してみてください。
マウスオーバーで画像を変更
See the Pen 「attr()メソッド」 クリックでボタンのクラスを変更 by kasuga (@kntkfmgf-the-vuer) on CodePen.
コードはこちら
HTML
<div class="container">
<img src="https://life-design-day.com/samples/img/img.png" alt="img">
<p class="note">マウスオーバーで画像が変わります。</p>
</div>
CSS
*{
box-sizing:border-box;
margin: 0;
padding: 0;
}
body{
background: #e4eff7;
font-size: 14px;
padding: 20px;
}
.container{
margin: 0 auto;
max-width:1000px;
text-align: center;
}
.container img{
height: auto;
max-width: 100%;
}
.note{
margin-top: 20px;
}
jQuery
$(function(){
$('.container img').hover(function(){
$('.container img').attr('src','https://life-design-day.com/samples/img/img_hv.png');/*マウスオーバーした時の画像URLを指定*/
},function(){
$('.container img').attr('src','https://life-design-day.com/samples/img/img.png');/*マウスアウトした時の画像URLを指定*/
});
});
クリックでボタンのクラスを追加・削除
See the Pen 「attr()メソッド」 クリックでボタンのクラスを変更 by kasuga (@kntkfmgf-the-vuer) on CodePen.
コードはこちら
HTML
<div class="container">
<div>ボタン1</div>
<div>ボタン2</div>
<div>ボタン3</div>
</div>
<div class="reset">
<a href="">リセット</a>
</div>
CSS
*{
box-sizing:border-box;
margin: 0;
padding: 0;
}
body{
background: #e4eff7;
font-size: 14px;
padding: 20px;
}
.container{
display: flex;
flex-wrap:wrap;
gap:20px;
justify-content: center;
margin: 0 auto;
max-width:1000px;
}
.container div{
background: #666;
color: #fff;
cursor: pointer;
border-radius: 10px;
padding: 20px;
}
.container .active{
background: #59b5ed;/*jsで「active」クラスを追加するのでスタイルを用意しておく*/
}
.reset{
margin-top: 40px;
text-align: center;
}
jQuery
$(function(){
$('.container div').each(function(){
$(this).on('click',function(){
$(this).attr('class','active');/*クリックで「active」クラスを追加*/
});
});
$('.reset').on('click',function(){
$('.container div').removeAttr('class');/*クリックで「class」属性を削除*/
return false;
});
});
jQueryのattrメソッドのまとめ
ここまで、jQueryの attr() メソッドについて基本から応用まで詳しく解説してきました。
初心者の方にもわかりやすく、実際のコード例を交えながら進めてきたので、「なんとなく知っていた」が「しっかり使いこなせる」へと一歩進めたのではないでしょうか。
最後に、重要なポイントを振り返っておきましょう。
attr() メソッドの基本
属性操作のパターン
attr() と prop() の違い
混同しがちな prop() との違いも重要です。
| 比較項目 | attr() | prop() |
|---|---|---|
| アクセス対象 | HTML属性(静的) | DOMプロパティ(動的) |
| 主な用途 | href, src, title など | checked, disabled, selected など |
使い分けのコツ
- 静的なHTMLの情報 → attr()
- 動的な状態や振る舞い → prop()
jQueryでの属性操作はUIの柔軟性を高める
属性を自在に操作できるようになると、、反応の良いWebインターフェースを構築することが可能です。
- attr() はHTMLの属性を柔軟に操作できる強力なメソッド
- 基本の使い方をマスターすれば、インタラクティブなWeb制作が一段とスムーズに
- prop() との違いを正しく理解して、場面ごとに適切に使い分ける
これらをしっかりと理解し、実践に活かしていけば、jQueryによるフロントエンド開発の幅は格段に広がります。



最後まで読んでいただきありがとうございました!以下のおすすめ記事もチェックして見てくださいね!
まだブログを始めていない方は以下の記事をぜひチェック!






ブログを始めたばかりの人は以下の記事をぜひチェック!











