SlideShare a Scribd company logo
1 of 101
Hello jQuery
SACSS SPECIAL4 FRONTREND IN SAPPORO
@pocotan001
Hayato Mizuno
📣 #01 Introduction
✎ #02 The Basics
📕 #03 Patterns
📣

#01 Introduction
#01 Introduction

photo by shoze
#01 Introduction

photo by victoria white2010
57%
#01 Introduction
jQuery

None

57%

57.3%

54.9%

50.8%

49.1%

46.7%

46%

42.7%

42.8%

2012/01

#01 Introduction

39.2%

2012/05

2012/09

2013/01

37.4%

2013/05

Historical trends in the usage of JavaScript libraries
#01 Introduction
想像力は知識より重要である。
Albert Einstein
$('div').css('color', 'red');

#01 Introduction
$('div').css('color', 'red');
!
!
!
!

var divs = document.getElementsByTagName('div');
 
for (var i = 0; i < divs.length; i++) {
divs[i].style.color = 'red';
}

#01 Introduction
何かを学ぶのに、自分自身で経
験する以上に良い方法はない。
Albert Einstein
調べられるものを、いちいち覚
えておく必要などない。
Albert Einstein
調べられるものを、いちいち覚
えておく必要などない。
Albert Einstein

ggrks!
jQueryの読み込み

#01 Introduction
<!doctype html>
<html>
<body>
<p>jQuery</p>
<script src="jquery.js"></script>
<script>
// Your code goes here.
</script>
</body>
</html>

#01 Introduction
<!doctype html>
<html>
<body>
<p>jQuery</p>
<script src="//ajax.googleapis.com/ajax/libs/
jquery/1.10.2/jquery.min.js"></script>
<script>
// Your code goes here.
</script>
</body>
</html>

#01 Introduction

https://developers.google.com/speed/libraries/devguide?hl=ja&csw=1#jquery
CDNの良いところ

_ 無ホスティング
_ ドメインシャーディング
_ クロスサイトキャッシング
_ etc.

#01 Introduction
Google CDNで人気のバージョン
1.4.2 (http)

1.7%

1.7.2 (http)

1.6%
1.7.1 (http)

1.6%
1.3.2 (http)

1.2%
その他

4.7%
2013年3月

#01 Introduction

http://www.stevesouders.com/blog/2013/03/18/http-archive-jquery/
Google CDNで人気のバージョン
1.4.2 (http)

1.7%

1.7.2 (http)

1.6%
1.7.1 (http)

1.6%

89.2%

1.3.2 (http)

1.2%
その他

4.7%
2013年3月

#01 Introduction

http://www.stevesouders.com/blog/2013/03/18/http-archive-jquery/
jQuerify

#01 Introduction
https://chrome.google.com/webstore/detail/jquerify/gbmifchmngifmadobkcpijhhldeeelkc
https://github.com/bgrins/devtools-snippets/blob/master/snippets/jquerify/jquerify.js
✎

#02 The Basics
$('div').css('color', 'red');

#02 The Basics
$ or $()

$('div').css('color', 'red');

#02 The Basics
セレクタ

$('div').css('color', 'red');

#02 The Basics
セレクタ

$('.a').css('color', 'red');

#02 The Basics
セレクタ

$('ul > li').css('color', 'red');

#02 The Basics
セレクタ

$('td:even').css('color', 'red');

#02 The Basics
セレクタ

$(':first').css('color', 'red');

#02 The Basics
セレクタ

$(':first-child').css('color', 'red');

#02 The Basics
セレクタ

$(':animated').css('color', 'red');

#02 The Basics
メソッド

$(':animated').css('color', 'red');

#02 The Basics
引数

$(':animated').css('color', 'red');

#02 The Basics
メソッド

$(':animated').addClass('a');

#02 The Basics
メソッド

$(':animated').html('じぇじぇじぇ');

#02 The Basics
メソッド

$(':animated').fadeOut();

#02 The Basics
セミコロン
で〆
$(':animated').fadeOut();

#02 The Basics
$ = jQuery

jQuery(':animated').fadeOut();

#02 The Basics
APIのカテゴリー

_ Ajax
_ Attributes
_ CSS
_ Callbacks
_ Core
_ Data
_ Deferred
_ Dimensions
#02 The Basics

_ Effects
_ Events
_ Forms
_ Manipulation
_ Selector
_ Traversing
_ Utilities
jQuery API Documentation
jQuery 日本語リファレンス | js STUDIO
メソッドチェイン

#02 The Basics
メソッド
$('div').css('color', 'red')

#02 The Basics
$('div').css('color', 'red')
.addClass('a').html('じぇじぇじぇ');

#02 The Basics
$('div').css('color', 'red')
.addClass('a').html('じぇじぇじぇ');

#02 The Basics
メソッド

メソッド

メソッド

$('div').css('color', 'red')
.addClass('a').html('じぇじぇじぇ');

#02 The Basics
ゲッターとセッター

#02 The Basics
セッター
(設定)

$('div').css('color', 'red');

#02 The Basics
ゲッター
(取得)

$('div').css('color');

#02 The Basics
ゲッター(取得)
.attr('href')

#02 The Basics

セッター(設定)
.attr('href', '/')
ゲッター(取得)

セッター(設定)

.attr('href')

.attr('href', '/')

.width()

.width('80px')

#02 The Basics
ゲッター(取得)

セッター(設定)

.attr('href')

.attr('href', '/')

.width()

.width('80px')

.html()

.html('<p>ほげ<p>')

#02 The Basics
ゲッター(取得)

セッター(設定)

.attr('href')

.attr('href', '/')

.width()

.width('80px')

.html()

.html('<p>ほげ<p>')

.text()

.text('ほげ')

#02 The Basics
ゲッター(取得)

セッター(設定)

.attr('href')

.attr('href', '/')

.width()

.width('80px')

.html()

.html('<p>ほげ<p>')

.text()

.text('ほげ')

.val()

.val('')

#02 The Basics
戻り値

#02 The Basics
#a の width に #b の width を適用

$('#a').width($('#b').width());

#02 The Basics
$('div')

$('div').css('color', 'red');

#02 The Basics
"red"

$('div').css('color');

#02 The Basics
$('div')

#02 The Basics
$('div')
.css('color', 'red')

#02 The Basics

$('div')
$('div')
.css('color', 'red')
.find('p')

#02 The Basics

$('div')
$('div')
$('div')
.css('color', 'red')
.find('p')
.addClass('hoge')

#02 The Basics

$('div')
$('div')
$('div p')
$('div')
.css('color', 'red')
.find('p')
.addClass('hoge')
.width()

#02 The Basics

$('div')
$('div')
$('div p')
$('div p')
$('div')
.css('color', 'red')
.find('p')
.addClass('hoge')
.width()
.fadeOut()

#02 The Basics

$('div')
$('div')
$('div p')
$('div p')
122
$('div')
.css('color', 'red')
.find('p')
.addClass('hoge')
.width()
.fadeOut()

#02 The Basics

$('div')
$('div')
$('div p')
$('div p')
122
エラー
// 空の関数
$.noop();
// jqXHRオブジェクト
$.ajax('example.html');
// コールバックリスト
$.Callbacks();

#02 The Basics
📕

#03 Patterns
リーダブルコード

#03 Patterns
$('ul').find('.a').css('color',
'red').end().find('.b').css('color',
'green').text('Hello');

#03 Patterns
$('ul')
.find('.a')
.css('color', 'red')
.end()
.find('.b')
.css('color', 'green')
.text('Hello');

#03 Patterns
var $ul = $('ul'),
$a = $ul.find('.a'),
$b = $ul.find('.b');
!

$a.css('color', 'red');
$b.css('color', 'green').text('Hello');

#03 Patterns
DRY

#03 Patterns
$('#a').on('click', function() {
$('#modal').show();
});

#03 Patterns
$('#a').on('click', function() {
$('#modal').show();
});
$('#b').on('click', function() {
$('#modal').show();
});
$('#c').on('click', function() {
$('#modal').show();
});

#03 Patterns
$('#a,#b,#c').on('click', function() {
$('#modal').show();
});

#03 Patterns
$('.button').on('click', function() {
$('#modal').show();
});

#03 Patterns
カプセル化・疎結合

#03 Patterns
$(function() {
$('.button').on('click', function() {
$('#modal').show();
});
});

#03 Patterns
var modal = {
init: function() {
$('.button').on('click', modal.show);
},
show: function() {
$('#modal').show();
}
};
$(modal.init);

#03 Patterns
jQuery Anti-Patterns for Performance & Compression
JavaScript Style Guides And Beautifiers
jQuery Core Style Guide
JavaScript Patterns
Design Patterns In jQuery
jQuery Boilerplate
何かを学ぶのに、自分自身で経
験する以上に良い方法はない。
Albert Einstein
プログラミングは
書かなきゃ覚えない
エビングハウスの忘却曲線
100%

58%
44%
26%

20分後

1時間後

1日後

23%
1週間後

21%
1ヶ月後

忘却曲線 - Wikipedia
エビングハウスの忘却曲線
100%

58%
44%
26%

20分後

1時間後

1日後

23%
1週間後

21%
1ヶ月後

忘却曲線 - Wikipedia
私には特別の才能はない。
ただ私は、情熱的に好奇心
が旺盛なだけだ。
Albert Einstein
Thank you
SACSS SPECIAL4 FRONTREND IN SAPPORO

More Related Content

Similar to Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -

WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
Kite Koga
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
良太 増子
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHP
Masashi Shinbara
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回
Noritada Shimizu
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
 

Similar to Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント - (20)

WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
 
J query element.key
J query element.keyJ query element.key
J query element.key
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
jQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみるjQueryでiTunes Store風スライドショーを作ってみる
jQueryでiTunes Store風スライドショーを作ってみる
 
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm...
 
CSS3 Design Recipe
CSS3 Design RecipeCSS3 Design Recipe
CSS3 Design Recipe
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
Gtug girls-20140828
Gtug girls-20140828Gtug girls-20140828
Gtug girls-20140828
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittr
 
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーションAngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
 
データ可視化勉強会
データ可視化勉強会データ可視化勉強会
データ可視化勉強会
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHP
 
ftechmeetup_明日から使える?Webデザインに使える小技集
ftechmeetup_明日から使える?Webデザインに使える小技集ftechmeetup_明日から使える?Webデザインに使える小技集
ftechmeetup_明日から使える?Webデザインに使える小技集
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
LDD'12/Summer in KITAMI Opening Slide
LDD'12/Summer in KITAMI Opening SlideLDD'12/Summer in KITAMI Opening Slide
LDD'12/Summer in KITAMI Opening Slide
 
JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+JavaScriptをまじめに考えました+
JavaScriptをまじめに考えました+
 

More from Hayato Mizuno

More from Hayato Mizuno (9)

レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
 
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
 
メンテナブルPSD
メンテナブルPSDメンテナブルPSD
メンテナブルPSD
 
赤い秘密
赤い秘密赤い秘密
赤い秘密
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
 
フロントエンドの求めるデザイン
フロントエンドの求めるデザインフロントエンドの求めるデザイン
フロントエンドの求めるデザイン
 
レンダリングを意識したパフォーマンスチューニング
レンダリングを意識したパフォーマンスチューニングレンダリングを意識したパフォーマンスチューニング
レンダリングを意識したパフォーマンスチューニング
 
CoffeeScriptってなんぞ?
CoffeeScriptってなんぞ?CoffeeScriptってなんぞ?
CoffeeScriptってなんぞ?
 
ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門
 

Recently uploaded

Recently uploaded (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Hello jQuery - 速習jQuery +綺麗なコードを書くためのヒント -