Wiki_JS_jQuery - inoueshinichi/Wiki_Web GitHub Wiki

jQueryの基本

  • 導入しやすいが, オワコン.

URL

メリット

  • ブラウザ間の互換性を吸収できる
  • DOM操作を上手にラッピングしている
  • 少ないコード量で処理を記述できる

デメリット

  • 処理が重い
  • TypeScriptと相性が悪い
  • コードからHTML要素を把握し辛い

書式

  • $(セレクタ-).メソッド(パラメータ)
  • $()jQuery()のショートカット
  • '$()'が使用できない場合, 'jQuery.noConflict()`を使用する
  • $(セレクター)は, 要素のjQueryオブジェクト.(メソッドとメンバを持つ)

セレクターの指定方式

  • $('.class_name') クラスセレクター
  • $('div p') 子孫セレクター
  • $('p:last-child') 疑似クラスセレクター
  • $('#id') idセレクター

該当するセレクタが複数ある場合, すべてのセレクタにjQuery操作が適用される!

よく使うjQueryメソッド一覧

メソッド 概要
コア機能 -
$('セレクタ') セレクタにマッチする要素をすべて取得する
$(配列またはオブジェクト) 配列のデータやオブジェクトのプロパティをすべて取得する
$.ajax() 非同期通信を行う
トラバーサル -
next() すぐ次の弟要素を取得する
find('セレクタ') 子孫要素のうち, セレクタにマッチする要素すべてを取得する
children('セレクタ') 子要素をすべて取得する. パラメータにセレクタが含まれている場合, マッチする子要素のみ取得
each(function() {...}) 取得したすべての要素や配列のデータなどに{...}を実行する
parent('セレクタ') 親要素を取得する. パラメータにセレクタが含まれている場合, 親要素がセレクタにマッチするときのみ取得する
siblings() 兄弟要素をすべて取得する
prev() すぐ前の兄要素を取得する`
マニピュレーション(HTMLやCSSの操作) -
addClass('クラス') クラスを追加する
removeClass('クラス') クラスを削除する
toggleClass('クラス') 取得した要素にクラスがあれば, 削除, なければ追加
text('テキスト') テキストコンテンツを設定する(上書き)
hasClass('クラス') 取得した要素にクラスがあるかどうか調べる
prepend(要素) 取得した要素に子要素を挿入する. 既に子要素があれば, その前に挿入
append(要素) 取得した要素に子要素を挿入する. 既に子要素があれば, その後に挿入
attr('属性名','値') 要素の属性を値に設定する
attr('属性名') 要素の属性の値を取得する
remove() 要素を削除する
イベント -
on('イベント', function() {}) イベントを設定する
event.preventDefault() イベントの基本動作をキャンセルする

HTMLの内容を変更・取得する

$('#img_unit').html('ここに,画像リストが表示されます'); // 変更
alert($('#img_unit').html()); // 取得

CSSの内容を設定する

$('#img_unit').css('margin-top', '100px'); // 設定(変更)
$('#img_unit').css('margin-top'); // 取得

同じHTML要素に対する操作はメソッドチェーンでメソッドを連結できる

$('#img_unit').html('ここに,画像リストが表示されます').css('margin-top', '100px');

Ajax通信を行う getJSON()

$.getJSON('http://your.url:port/path/to', function(data) {
  alert('データを受信しました');
}
  • $.getJSON(ファイルパス, 送信データ, コールバック);
  • `$.getJSON(ファイルパス, コールバック);'

新しい要素を作る $(要素)

  • $('<div class="photo"></div>') : DOMのdocument.createElement()に相当

親要素に子要素を追加する append()

  • DOMのdom_obj.appendChild()に相当
$('親要素').append('子要素').append('子要素');

子要素を親要素に追加する appendTo()

$('子要素').appendTo('親要素');

HTMLが読み込まれたら処理する ready()

$(document).ready(functon() {
  // 処理
});

イベントを設定する on

$(セレクタ).on('イベント名', function() {
 // イベントで処理する内容
 $(this); // 複数セレクタを取得した場合, いずれかの要素のjQueryオブジェクト
 
 // e.g
 if ($(this).className == 'my_specific') {
   // 特定の要素に対するイベント処理
 }
});
$('.submenu h3').on('click', function() {
  // 処理
});

⚠️ **GitHub.com Fallback** ⚠️