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.
April 23, 2014
Technology
0
58
jQueryクックブック #TechLunch
2011/09/14(水) @ Livesense TechLunch
発表者:島田 喜裕
Livesense Inc.
April 23, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
0
3.2k
27新卒_Webエンジニア職採用_会社説明資料
livesense
0
7.3k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
0
250
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
0
560
26新卒_総合職採用_会社説明資料
livesense
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
2
55k
26新卒_Webエンジニア職採用_会社説明資料
livesense
1
13k
中途セールス職_会社説明資料
livesense
0
300
Other Decks in Technology
See All in Technology
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
190
「Blue Team Labs Online」入門 - みんなで挑むログ解析バトル
v_avenger
0
150
Claude Codeが爆速進化してプラグイン追従がつらいので半自動化した話 ver.2
rfdnxbro
0
500
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
140
堅牢.py#2 LT資料
t3tra
0
130
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
5
2.5k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
320
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.6k
[2026-03-07]あの日諦めたスクラムの答えを僕達はまだ探している。〜守ることと、諦めることと、それでも前に進むチームの話〜
tosite
0
180
PMBOK第8版は第7版から何が変わったのか(PMBOK第8版概要解説) / 20260304 Takeshi Watarai
shift_evolve
PRO
0
200
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
マネージャー版 "提案のレベル" を上げる
konifar
22
15k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
440
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Automating Front-end Workflow
addyosmani
1370
200k
Building Adaptive Systems
keathley
44
2.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
Design in an AI World
tapps
0
170
Discover your Explorer Soul
emna__ayadi
2
1.1k
We Are The Robots
honzajavorek
0
190
Tell your own story through comics
letsgokoyo
1
840
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 クックブック アニメーション