HTMLとCSSを学んだらサイト作りはできますが、サイト作りを学んでいくと必ず目にする言葉といえばjQuery。
この記事ではjQueryとはそもそもなんなのか、そしてどうやって使うのかを説明して行きますので、是非最後まで読み進めて行ってください。
jQueryとは
HTML・CSSで作られたサイトの動きを表現するのにJavascriptというフロントエンド言語がよく使われています。しかし、Javascriptはフロントエンド言語なので、ブラウザによってJavascriptの命令の解釈が違い、処理結果に差が出てしまいます。
その問題を解決するのに誕生したライブラリ(Javascriptの機能をまとめたもの)がjQueryです。
jQueryのメリット
処理結果の差を無くす以外にも、メリットがあります。
- Javascriptよりも短い記述でできる
- CSSの記述法と似ているのでWebデザイナーでも扱いやすい
jQueryを利用する
jQueryを利用するために、jQueryをHTMLに読み込みますが、読み込み方には2種類あります。
ダウンロードしてHTMLに読み込む
jQUery本体をここからダウンロードして、外部ファイルとしてHTMLに読み込ませます。
自分のパソコンにjQUery本体をダウンロードすることにより、オフラインの環境でもjQUeryを利用することができます。3.5.1と書いてある部分はjQueryのバージョンです。
HTML
<script src="jquery-3.5.1.min.js"></script>
GoogleのCDNからHTMLに読み込む
Googleのサーバー上にあるjQueryをHTMLに読み込んで利用することもできます。
jQueryをローカル環境(パソコン)にダウンロードする手間もなく、しかも読み込み時間が短くなるケースがあるのでこちらの方法をおすすめします。
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
jQueryの書き方
jQueryはHTMLを全て読み込んだ後に実行しないと、動かないなどの不具合が生じてしまいます。
そうならない様に下記の様にreadyメソッドと呼ばれるメソッドを使い、HTMLを全て読み込んだ後にjQueryを実行するようにします。
jQuery
$(document).ready(function(){ // ここに実行したい処理を記述 });
ただ、これだと記述が長くなってしまうので、実際には下記の様にreadyメソッドを省略して記述することがほとんどです。
jQuery
$(function(){ // ここに実行したい処理を記述 });
jQueryの構成
jQueryは「どの要素に」対して「どんな処理をするか」を記述します。
「どの要素に」の部分をセレクタ、「どんな処理をするか」の部分をメソッドと呼びます。
例えば、h1の色を赤にする場合は、以下のように記述します。
jQuery
$(function(){ $('h1').css('color','red'); });
h1タグがセレクタで、cssの部分はメソッドです。
なおメソッドの括弧の中にあるパラメータ(引数)は、メソッドの種類によって必要ない場合もあります。セレクタやパラメータはシングルクオーテーションで囲ってもダブルクオーテーションで囲っても大丈夫です。
セレクタ
上の例のセレクタは要素名(h1)を書いてあるだけのシンプルなものですが、セレクタの種類を使い分けると様々な対象にスタイルを適用できます。
セレクタという呼び名でピンとくる方もいると思いますが、CSSの書き方と同じです。セレクタの種類は以下の通りです。
種類 | 書式 | 適用対象 |
---|---|---|
要素セレクタ | 要素名 | 要素名で指定された要素 |
idセレクタ | #id名 | 指定されたid属性の値を持つ要素 |
classセレクタ | .class名 | 指定されたclass属性の値を持つ要素 |
ユニバーサルセレクタ | * | 全ての要素 |
グループセレクタ | セレクタ1,セレクタ2 | 複数の要素 |
子セレクタ | 親要素 > 子要素 | 親要素の直下にある子要素 |
子孫セレクタ | 祖先要素 子孫要素 | 祖先要素内にある子孫要素 |
隣接セレクタ | 要素 + 後要素 | 要素の直後にある要素 |
間接セレクタ | 要素 ~ 兄弟要素 | 要素以降にある兄弟要素 |
属性セレクタ
指定した属性名と属性値を持つ要素を取得します。
name属性やinput要素のtype属性などでよく使われます。
種類 | 書式 |
---|---|
[属性名 = '値'] | 指定の属性値をもつ要素 |
[属性名 != '値'] | 指定の属性値をもたない要素 |
[属性名 ^= '値'] | 指定の属性値で始まる要素 |
[属性名 $= '値'] | 指定の属性値で終わる要素 |
[属性名 *= '値'] | 指定の属性値を含む要素 |
フィルタ
セレクタで取得した要素を絞り込む機能です。
フィルタを使うことにより、セレクタだけではできない、複雑な条件の要素を取得することができます。フィルタはCSSと同じでセレクタの後ろに続けて記述します。
jQuery
$(function(){ $('セレクタフィルタ').メソッド(引数); });
例えば、liの最初の要素の文字だけを赤にする場合は、以下のように記述します。
jQuery
$(function(){ $('li:first').css('color','red'); });
フィルタの種類は以下の通りです。
書式 | 適用対象 |
---|---|
:first | 最初の要素 |
:last | 最後の要素 |
:first-child | 親要素内にある最初の要素 |
:last-child | 親要素内にある最後の要素 |
:odd | 奇数番目の要素 |
:even | 偶数番目の要素 |
:eq(n) | n番目の要素 |
:lt(n) | n番目より前の要素 |
:gt(n) | n番目より後の要素 |
:contains(文字列) | 指定した文字列を含む要素 |
:not(要素) | 指定した要素を除外 |
メソッド
セレクタを「どう処理するか」を記述します。
メソッドを使うことで、セレクタの内容を変更したり、アニメーションをつけることができます。
jQuery
$(function(){ $('セレクタ').メソッド(引数); });
例えば、ID名がmainの要素にactiveクラスを追加する場合は、以下のように記述します。
jQuery
$(function(){ $('#main').addClass('active'); });
メソッドの種類は以下の通りです。
メソッド | 説明 |
---|---|
.css() | 要素のスタイルを変更または取得する |
.find() | 指定した要素の子孫要素を取得する |
.parent() | 指定した要素の親要素を取得する |
.children() | 指定した要素の直下にある子要素を取得する |
.text() | 要素の文字列を変更または取得する |
.html() | 要素のHTMLを変更または取得する |
.attr() | 属性の値を変更または取得する |
.data() | データ属性を変更または取得する |
.prepend() | 指定した要素内の先頭に新たな要素を追加する |
.append() | 指定した要素内の末尾に新たな要素を追加する |
.before() | 指定した要素の前に新たな要素を追加する |
.after() | 指定した要素の後に新たな要素を追加する |
.remove() | 指定した要素を削除する |
.empty() | 指定した要素内の内容(子孫要素や文字列など)を削除する |
.addClass() | 指定した要素にclassを追加する |
.removeClass() | 指定した要素のclassを削除する |
.toggleClass() | 指定した要素にclass名が無ければ追加、あれば削除する |
.scrollTop() | 縦(Y座標)のスクロール位置を取得・設定する |
.scrollLeft() | 横(X座標)のスクロール位置を取得・設定する |
イベント
メソッドの中でもイベント系のメソッドというものがあります。
これを使うことで、クリックなどの操作が行われた時などに、何かしらの処理を実行することができます。イベントの構文は、以下のように記述します。
jQuery
$('セレクタ').イベント名(function(){ // ここに実行したい処理を記述 });
例えば、以下の場合、#btnの要素をクリックするたびに、ID名main要素に対してactiveクラスの追加と削除を繰り返します。
jQuery
$('#btn').click(function(){ $('#main').toggleClass('active'); });
イベント系のメソッドの種類は以下の通りです。
イベント | 説明 |
---|---|
.click() | クリック時に処理を実行する |
.dblclick() | ダブルクリック時に処理を実行する |
.mousedown() | 要素上でマウスボタンを押した時に処理を実行 |
.mouseover() | 要素内にマウスカーソルが入った時に処理を実行 |
.mouseout() | 要素内からマウスカーソルが出た時に処理を実行する |
.load() | 指定した要素の読込が完了した時に処理を実行 |
.resize() | ブラウザのウインドウをリサイズした時に処理を実行 |
.scroll() | スクロールした時に処理を実行 |
.on() | さまざまなイベント処理を設定 |
.off() | 設定されているイベント処理を取り消す |
.one() | 1度だけ有効なイベント発生時の処理を設定 |
アニメーション
アニメーション系のメソッド一覧です。
処理を行う際に、アニメーションをつけることができます。例えば、以下の場合、#btnの要素をクリックすると、ID名text要素が非表示になります。
jQuery
$('#btn').click(function(){ $('#text').hide(); });
アニメーション系のメソッドの種類は以下の通りです。
メソッド | 説明 |
---|---|
.show() | 非表示状態の要素を表示する |
.hide() | 表示状態の要素を非表示にする |
.toggle() | 表示状態の要素は非表示に、非表示状態の要素は表示する |
.fadeIn() | 要素をフェードインで表示する |
.fadeOut() | 要素をフェードアウトで非表示にする |
.slideDown() | 要素を縦方向にスライドして表示する |
.slideUp() | 要素を縦方向にスライドして非表示にする |
.animate() | アニメーションを作成する |
まとめ
この記事に書かれていることで、特に覚えておいて欲しいことは以下の3点です。
- jQueryはJavascriptの問題を解決するために生まれたライブラリ
- HTMLファイルに読み込ませて使う
- 基本的には「どの要素に」「どう処理するか」を記述する
Javascriptで挫折してしまった人も、jQueryを学んでみると、プログラミング言語への抵抗感がなくなる可能性が高いので、是非一度触れてみてください。jQueryの勉強はオススメです。
jQuery関係の記事は他にも書いているので、宜しければそちらもチェックしてみてください。
-
【jQuery入門】様々なセレクタで要素を指定しよう【一覧あり】
この記事ではjQueryの「セレクタ」について解説します。 jQueryのセレクタは、CSSセレクタと同じでなので、CSSの知識があるなら問題なく理解できると思います。では早速見ていきましょう! Co ...
-
【jQuery入門】属性セレクタを上手く使い分けよう
以前、jQueryの「セレクタ」について学びましたが、今度は「属性セレクタ」について解説していきます。 こちらもCSSと同じでなので、CSSの知識があるなら問題なく理解できると思います。では早速見てい ...
-
【jQuery入門】フィルタを使って要素を絞りこもう
jQueryのセレクタについて学んできましたが、今回は他のセレクタと利用する「フィルタ」について解説していきます。 ここをクリアしたら、いよいよjQueryの肝となるメソッドについて学んでいきます。で ...
-
【jQuery入門】メソッドをマスターしてjQueryを使いこなそう
これまでこのブログで、jQueryのセレクタについて学んできましたが、今回はいよいよ、jQuery以外の多くのスクリプト言語でも使われる「メソッド」という仕組みについて学んでいきます。 では早速見てい ...
-
【jQuery入門】よく使うイベント系のメソッド9選
前回、メソッドという仕組みについて学びましたが、長くなりそうだったので記事を3つに分けました。 今回は2つ目ですが、イベント系のメソッドについて学んでいきます。では早速見ていきましょう。 Conten ...
-
【jQuery入門】よく使うアニメーション系のメソッド8選
前回、前々回とメソッドという仕組みについて学びましたが、今回はメソッド関連の最終記事です。 使ってみると割と簡単ですけど、使う機会が多いアニメーション系メソッドです。では早速見ていきましょう。 Con ...