Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
jQueryクックブック #TechLunch
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
130
Rubyはただの⾔語に⾮ず
livesense
PRO
0
580
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
130
27新卒_総合職採用_会社説明資料
livesense
PRO
0
7.5k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
600
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
730
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
Other Decks in Technology
See All in Technology
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
Local CI × GitHub Actions
gogutan
2
190
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
860
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
190
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
Refining Active Record
shugo
0
150
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
340
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
A designer walks into a library…
pauljervisheath
211
25k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Docker and Python
trallard
47
4.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Marketing to machines
jonoalderson
1
5.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
So, you think you're a good person
axbom
PRO
2
2.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
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 クックブック アニメーション