Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jQueryクックブック #TechLunch
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Livesense Inc.
PRO
April 23, 2014
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jQueryクックブック #TechLunch
2011/09/14(水) @ Livesense TechLunch
発表者:島田 喜裕
Livesense Inc.
PRO
April 23, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
Rubyはただの⾔語に⾮ず
livesense
PRO
0
450
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
110
27新卒_総合職採用_会社説明資料
livesense
PRO
0
6.2k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
520
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
650
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
70k
Other Decks in Technology
See All in Technology
「休む」重要さ
smt7174
6
1.6k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.3k
「顧客の声を聞かなければ何も始まらない」 ── 顧客の声から生まれた『AI返信補助機能』の開発プロセス / AICon2026_shikata_imai
rakus_dev
1
270
Type-safe IaC for Dart
coborinai
0
180
kaonavi Tech Night#1
kaonavi
0
160
OPENLOGI Company Profile for engineer
hr01
1
74k
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
140
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
180
Aurora MySQL 8.4リリース! Rubyistが備えること / what-rubyist-should-prepare-for-aurora-mysql-8-4
fkmy
0
780
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
2
290
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
160
文字起こし基盤の信頼性
abnoumaru
0
120
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Color Theory Basics | Prateek | Gurzu
gurzu
0
400
Unsuck your backbone
ammeep
672
58k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
370
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Exploring anti-patterns in Rails
aemeredith
3
450
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Transcript
jQuery jQuery クックブック クックブック
jQuery jQuery での要素の選択 での要素の選択 • jQuery の中心にはセレクタエンジンがあ る。 • CSS
セレクタ構文で要素選択ができる。 • 特別な状態や特性に基づいた要素選択 を可能にするカスタムセレクタがある。
基本原理 基本原理 • 要素を指定する簡単な方法 • 例 ) #content 内のすべての <p>
要素に 含まれるすべての <a> 要素を選択 jQuery('#content p a');
基本原理 基本原理 • 選択された要素は jQuery メソッドを実行で きる。 • 例 )
すべてのリンクに selected クラスを追加する jQuery('#content p a') .addClass('selected');
セレクタを作成するときの セレクタを作成するときの 最適化の原則 最適化の原則 • できるだけ具体的なものにする • 意味もなく複雑にはしない jQuery('body
div#wrapper div#content'); ↓ jQuery('#content');
セレクタの高速化 セレクタの高速化 • class 属性の代わりに id 属性 ・ HTML
<div id="bar" class="foo"></div> $('.foo') // Slower $('#bar') // Faster
セレクタの高速化 セレクタの高速化 ・ HTML <table id="log"> <tr> <td>Client
X:</td><td class="clientX"></td> </tr> ... </table> • tr.clientX を選択する場合にはどうするか?
セレクタの高速化 セレクタの高速化 • クラスセレクタを使う場合、 ID セレクタでた どる $('.clientX') // Slower
$('td.clientX') // May be faster $('#log .clientX') // May be much faster $('#log td.clientX') // Possibly faster in some browsers
セレクタについて セレクタについて • ページが単純な場合はクラスセレクタのほうが 複雑なセレクタより速い可能性がある。 セレクタが複雑だとセットアップに時間 がかかる • 特定のページで最も高速なセレクタを確認す るためには、そのページでそれぞれをテストす
るしかない。
セレクタについて セレクタについて • クラスセレクタは時間がかかる可能性がある。 jQuery1.3 よりも以前 どのブラウザでも時間がかかる jQuery1.3 以降 Sizzele
セレクタエンジンが導入
Sizzele Sizzele セレクタエンジン セレクタエンジン • 新しいブラウザでは高速なセレクタ API を利用 する。 getElementByClassName()
querySelectorAll() • IE7 では使えない Id セレクタを仕様 親要素やタグ名でより具体的に指定
セレクタ セレクタ API API • 目的の要素を取得に、ノードを反復処理す る必要がある場合 getElementById() や
getElementByTagName() では不十分、非 効率になりがち querySelectorAll() の方が高速 var elements = document.querySelectorAll('#menu a');
セレクタ セレクタ API API • getElementsByTagName() Html コレクション・・・シャローコピー •
querySelectorAll() NodeList ・・・ディープコピー ・ querySelectorAll() を使わずに同様の処理を行う場合 var elements = document.getElementById('#menu').getElementBy TagName('a');
セレクタ セレクタ API API 利用できる各ブラウザのバージョンは IE8 、 Fir efox3.5 、
Safari3.1 、 Chrome1 、 Opera10 document.querySelectorAll() が利用可能か調 べ、可能ならそれを使うことは有益
フィルタ フィルタ • :first ・・・最初に選択された要素 • :last ・・・最後に選択された要素 • :even
・・・偶数要素 • :odd ・・・奇数要素 • :eq(n) ・・・インデックス (n) • :lt(n) ・・・インデックスが n より小さい要素 • :gt(n) ・・・インデックスが n より大き要素
フィルタ フィルタ • 元になるコレクションが指定されない場合 ドキュメント内のすべての要素を意味するも のを前提とする jquery('*:even');
カスタムフィルタセレクタ カスタムフィルタセレクタ • Jquery のセレクタ式は jQuery.expr[':'] オブ ジェクトに基づいて拡張できる。 • Sizzle.selector.filters
のエイリアス。 jQuery.expr[':'].newFilter = function(elem, index, match){ return true; };
カスタムフィルタセレクタ カスタムフィルタセレクタ 例 ) インラインで表示される全ての要素とマッ チ jQuery.expr[':'].inline = function(elem) {
return jQuery(elem).css('display') === 'inline'; }; // 例 1 jQuery('div a:inline').css('color', 'red'); // 例 2 jQuery('span').filter(':not(:inline)').css('color', 'blue')
カスタムフィルタセレクタ カスタムフィルタセレクタ • 新しいセレクタをいくつか同時に追加する場 合 jQuery.extend(jQuery.expr[':'], { newFilter1 : function(elem,
index, match){ // Return true or false. }, newFilter2 : function(elem, index, match){ // Return true or false. }, newFilter3 : function(elem, index, match){ // Return true or false. } });
次回 次回 • 続、 jQuery クックブック アニメーション