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
Livesense Inc.
PRO
April 23, 2014
Technology
73
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
510
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
120
27新卒_総合職採用_会社説明資料
livesense
PRO
0
7k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
12k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
540
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
680
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
74k
Other Decks in Technology
See All in Technology
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
240
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.2k
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
110
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
830
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
790
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
260
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
250
bet_ai_day_2026_session02
agenticsec
1
980
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
150
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
160
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
How to make the Groovebox
asonas
2
2.4k
Odyssey Design
rkendrick25
PRO
2
800
エンジニアに許された特別な時間の終わり
watany
108
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Code Review Best Practice
trishagee
74
20k
Done Done
chrislema
186
16k
Deep Space Network (abreviated)
tonyrice
0
290
From π to Pie charts
rasagy
0
350
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
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 クックブック アニメーション