概要と目標
jQueryで出来ることを知り、
はじめてのjQueryを書いてみる。
jQueryの基本を学習し、jQueryの使い方や、セレクタを学習しましょう。
jQueryの基本を学習し、jQueryの使い方や、セレクタを学習しましょう。
CSSのような記述方法で、比較的簡単にWebページに効果や動きをつけられることが特徴。
jQueryは公式サイトよりjQuery本体のJSファイルをダウンロードして、読み込む方法と、
CDN(Content Delivery Network)といってインターネット経由でファイルを読み込む方法がある。
CDNの方が表示速度が早いなどのメリットがある。
script要素で読み込むscript要素を作成script要素内にjQueryのコードを記述script要素で読み込む。
この授業では、jQuery公式のCDN (https://code.jquery.com/) を使って、
jQuery1.x系の本体を利用する。
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
</body>の手前に貼り付ける <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
</body>
script要素で記述
jQueryのコードは、本体を読み込んだscript要素のあとに、
また別のscript要素を用いて記述する。
JavaScriptと同様script要素内に直接記述するか、src属性を使って、外部のJSファイルに記述する。
なお、jQueryのコードはHTMLがブラウザに読み込まれる前に実行しても困るので、
準備が出来てからスクリプトを実行するようにする
script要素内に直接記述する方法<script src="jQuery本体のファイルパス" type="text/javascript"></script>
<script type="text/javascript">
ここにjQueryの処理を記述
</script>
</body>
HTML5 の場合は type属性を省略できる
<script src="jQuery本体のファイルパス" type="text/javascript"></script>
<script src="JSファイルのパス" type="text/javascript"></script>
</body>
HTML5 の場合は type属性を省略できる
script要素を記述
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="app.js"></script>
</body>
ブラウザにHTMLの読み込みが終わってから処理を実行する為に、
「ready」というメソッドを使って、
DOMの準備ができてからスクリプトを実行させる。
readyメソッドでDOMの準備が出来てからスクリプトを実行$(document).ready(function() {
ここにjQueryの処理を記述
});
なお、readyメソッドは以下のように省略することも可能。
readyメソッドの省略した書き方$(function() {
ここにjQueryの処理を記述
});
$(function() {
// ここにjQueryのコードを記述
});
jQueryの基本は、セレクタで要素を選択し、メソッドで処理を実行する。
メソッドは複数繋げることが可能 (メソッドチェーン)
$(セレクタ).メソッド名(パラメータ)
〇〇に 〇〇する
$(function() {
// ここにjQueryのコードを記述
$('body').text('はじめてのjQuery');
});
css() というメソッドを追記
$(function() {
// ここにjQueryのコードを記述
$('body').text('はじめてのjQuery').css('color', 'red');
});
jQueryはCSSと同じセレクタがほとんど使える。
| 名称 | 書式 | 適用対象 |
|---|---|---|
| ユニバーサルセレクタ | $('*') |
すべての要素 Ex: $('*').text('ごにょごにょ');
|
| タイプセレクタ | $('要素名') |
特定の要素 Ex: $('p').text('ごにょごにょ');
|
| IDセレクタ | $('#ID名') |
特定のid属性の要素 Ex: $('#header').text('ごにょごにょ');
|
| classセレクタ | $('.class名') |
特定のclass属性の要素 Ex: $('.heading').text('ごにょごにょ');
|
| グループセレクタ | $('要素A, 要素B') |
複数の要素 Ex: $('h1, h2, h3').text('ごにょごにょ');
|
| 名称 | 書式 | 適用対象 |
|---|---|---|
| [attribute] | $('要素[属性名]') |
【属性名】の属性が指定されている【要素】 Ex: $('p[title]').text('ごにょごにょ');
|
| [attribute="value"] | $('要素[属性名="属性値"]') |
【属性名】の属性に【属性値】が指定されている【要素】 Ex: $('a[target="_blank"]').text('ごにょごにょ');
|
| [attribute!="value"] | $('要素[属性名!="属性値"]') |
属性名】の属性に【属性値】以外が゙指定されている【要素】 Ex: $('span[lang!="ja"]').text('ごにょごにょ');
|
| [attribute^="value"] | $('要素[属性名^="属性値の始め"]') |
【属性名】の属性が【属性値の始め】から始まる【要素】 Ex: $('a[href^="#"]').text('ごにょごにょ');
|
| [attribute$="value"] | $('要素[属性名$="属性値の終り"]') |
【属性名】の属性が【属性値の終り】で終わる【要素】 Ex: $('a[href$=".com"]').text('ごにょごにょ');
|
| [attribute*="value"] | $('要素[属性名*="属性値の一部"]') |
【属性名】の属性に【属性値の一部】を含む【要素】 Ex: $('a[href*="product"]').text('ごにょごにょ');
|
| 名称 | 書式 | 適用対象 |
|---|---|---|
| 子孫セレクタ | $('要素A 要素B') |
【要素A】の中にある【要素B】 Ex: $('#header p').text('ごにょごにょ');
|
| 子セレクタ | $('要素A > 要素B') |
【要素A】の直下にある【要素B】 Ex: $('ul > li').text('ごにょごにょ');
|
| 隣接セレクタ | $('要素A + 要素B') |
【要素A】と隣接している【要素B】 Ex: $('li + li').text('ごにょごにょ');
|
| 間接セレクタ | $('要素A ~ 要素B') |
【要素A】の後ろにある全ての【要素B】 Ex: $('h2 ~ p').text('ごにょごにょ');
|
| 名称 | 書式 | 適用対象 |
|---|---|---|
| first-child | $('要素:first-child') |
【要素】が最初の子要素の時 Ex: $('li:first-child').text('ごにょごにょ');
|
| last-child | $('要素:last-child') |
【要素】が最後の子要素の時 Ex: $('li:last-child').text('ごにょごにょ');
|
| first-of-type | $('要素:first-of-type') |
子要素の中で最初の【要素】 Ex: $('p:first-of-type').text('ごにょごにょ');
|
| last-of-type | $('要素:last-of-type') |
子要素の中で最後の【要素】 Ex: $('p:last-of-type').text('ごにょごにょ');
|
| nth-child | $('要素:nth-child(式)') |
【要素】が先頭から【式】(○個目)に一致する子要素の時 Ex: $('li:nth-child(2n + 1)').text('ごにょごにょ');
|
| nth-last-child | $('要素:nth-last-child(式)') |
【要素】が最後から【式】(○個目)に一致する子要素の時 Ex: $('li:nth-last-child(2n)').text('ごにょごにょ');
|
| nth-of-type | $('要素:nth-of-type(式)') |
先頭から【式】(○個目)に一致する【要素】 Ex: $('li:nth-of-type(2n)').text('ごにょごにょ');
|
| nth-last-of-type | $('要素:nth-last-of-type(式)') |
最後から【式】(○個目)に一致する【要素】 Ex: $('li:nth-last-of-type(2n)').text('ごにょごにょ');
|
| only-child | $('要素:only-child') |
【要素】が唯一の子要素の時 Ex: $('p:only-child').text('ごにょごにょ');
|
| only-of-type | $('要素:only-of-type') |
子要素の中で唯一の【要素】 Ex: $('p:only-of-type').text('ごにょごにょ');
|
| empty | $('要素:empty') |
空っぽ(子要素やテキストがない)の【要素】 Ex: $('div:empty').text('ごにょごにょ');
|
| lang | $('要素:lang(言語コード)') |
【言語コード】の言語に設定されている【要素】 Ex: $('span:lang(en)').text('ごにょごにょ');
|
| 否定 | $('要素A:not(要素B)') |
【要素B】以外の【要素A】 Ex: $('a:not(.button)').text('ごにょごにょ');
|
$(function () {
// タイプセレクター
$('body').css('background-color', '#eee');
// idセレクター
$('#site-title').css('font-weight', 'normal');
// classセレクター
$('.text').css('color', '#666');
// 属性セレクター (「^=」 から始まる)
$('a[href^="#"]').css('text-decoration', 'none');
// 子孫セレクター
$('ul .text').css('padding', '1em');
// 隣接セレクター
$('.text + .text').css('border-top', '1px dotted #ccc');
// グループセレクター
$('h1, p').css('text-align', 'center');
});
セレクタにはjQuery独自のものも用意されている。
基本的には要素を絞り込むフィルター的な役割になっている。
| 名称 | 書式 | 適用対象 |
|---|---|---|
| firstセレクタ | 要素:first |
先頭の【要素】 Ex: $('li:first').text('ごにょごにょ');
|
| lastセレクタ | 要素:last |
最後の【要素】 Ex: $('li:last').text('ごにょごにょ');
|
| evenセレクタ | 要素:even |
偶数番目の【要素】(0から数える) Ex: $('li:even').text('ごにょごにょ');
|
| oddセレクタ | 要素:odd |
奇数番目の【要素】(0から数える) Ex: $('li:odd').text('ごにょごにょ');
|
| eqセレクタ | 要素:eq(番号) |
【番号】番目の【要素】(0から数える) Ex: $('li:eq(1)').text('ごにょごにょ');
|
| ltセレクタ | 要素:lt(番号) |
【番号】番目より前の【要素】(0から数える) Ex: $('li:lt(3)').text('ごにょごにょ');
|
| gtセレクタ | 要素:gt(番号) |
【番号】番目より後の【要素】(0から数える) Ex: $('li:gt(3)').text('ごにょごにょ');
|
| headerセレクタ | :header |
h1 〜 h6のheading要素 Ex: $(':header').text('ごにょごにょ');
|
| containsセレクタ | 要素:contains(文字列) |
【文字列】が含まれている【要素】 Ex: $('p:contains('こんにちは')').text('ごにょごにょ');
|
| hasセレクタ | 要素A:has(要素B) |
【要素B】が含まれている【要素A】 Ex: $('p:has(span)').text('ごにょごにょ');
|
| parentセレクタ | 要素:parent |
子要素やテキストが含まれている【要素】 Ex: $('span:parent').text('ごにょごにょ');
|
$(function () {
// :first ・・・ 先頭の要素のみ
$('li:first').css('color', '#c00');
// :last ・・・ 最後の要素のみ
$('li:last').css('color', '#00c');
// :eq() ・・・ 指定したインデックス番号の要素のみ(0から始まる)
$('li:eq(2)').css('color', '#0c0');
// :even ・・・ 偶数の要素
$('li:even').css('background-color', '#eee');
// :odd ・・・ 奇数の要素
$('li:odd').css('background-color', '#ddd');
});
「chapter01」 › 「training」フォルダ内の「index.html」を開き、
下記の問題を解いて下さい。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>練習問題1</title>
</head>
<body>
<h1>練習問題1</h1>
<p id="msg">練習問題にチャレンジして下さい。</p>
<table border="1">
<caption>おすすめリンク集</caption>
<thead>
<tr>
<th>サイト名</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>Google</td>
<td><a href="https://www.google.com/" target="_blank">https://www.google.com/</a></td>
</tr>
<tr>
<td>Yahoo! Japan</td>
<td><a href="https://www.yahoo.co.jp/" target="_blank">https://www.yahoo.co.jp/</a></td>
</tr>
<tr>
<td>MSN</td>
<td><a href="https://www.msn.com/" target="_blank">https://www.msn.com/</a></td>
</tr>
<tr>
<td>Shibajukuブログ</td>
<td><a href="https://shibajuku.net/" target="_blank">https://shibajuku.net/</a></td>
</tr>
</tbody>
</table>
<p><a href="#top">このページの先頭へ</a></p>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="app.js"></script>
</body>
</html>
$(function () {
// 問題5
$('#msg').text('jQueryで置き換えだ!').css('color', '#c00');
// 問題6
$('tbody tr:even').css('background-color', '#ddd');
// 問題7
$('a[target="_blank"]').css('text-decoration', 'none');
// 問題8
$('a[href^="#"]').text('Page Top').css('font-weight', 'bold');
});
解答例は全問題のチェックボックスが on になるとご覧いただけます。
jQueryはJavaScriptをCSSのように記述することができる便利なライブラリです。