1+ /* global $, jQuery, HTMLCollection */
12'use strict' ;
23
34describe ( 'ステージ1(意図した DOM 要素を取得できるようになる)' , function ( ) {
45 describe ( 'DOM インターフェース編' , function ( ) {
56 it ( '1 番の赤色の要素(ID は "firebrick")が1つ取得できる' , function ( ) {
67 var elementId = 'firebrick' ;
78
8- // 'change me!' 部分を書き換えてください。
9+ // チュートリアル
10+ //
11+ // 'change me!' を document.getElementById(elementId) に
12+ // 書き換えてください。
913 var element = 'change me!' ;
1014
11- // 参考資料
12- // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementById
13-
15+ expect ( element ) . to . be . instanceof ( HTMLElement ) ;
1416 expect ( element ) . to . have . property ( 'id' , elementId ) ;
1517 } ) ;
1618
1719
1820 it ( '2 番の橙色の要素(ID は "chocolate")が1つ取得できる' , function ( ) {
1921 var elementId = 'chocolate' ;
2022
21- // 'change me!' 部分を書き換えてください 。
23+ // 'change me!' を書き換えてください 。
2224 var element = 'change me!' ;
2325
2426 // 参考資料
2527 // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementById
2628
29+ expect ( element ) . to . be . instanceof ( HTMLElement ) ;
2730 expect ( element ) . to . have . property ( 'id' , elementId ) ;
2831 } ) ;
2932
3033
3134 it ( '3 番の緑色の要素(CSS クラス名は "mediumseagreen")が1つ取得できる' , function ( ) {
3235 var elementClassName = 'mediumseagreen' ;
3336
34- // 'change me!' 部分を書き換えてください 。
37+ // 'change me!' を書き換えてください 。
3538 var elements = 'change me!' ;
3639
3740 // 参考資料
3841 // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByClassName
3942
40- expect ( elements ) . to . have . length ( 1 ) ;
41- expect ( elements [ 0 ] ) . to . have . property ( 'className ' , elementClassName ) ;
43+ expect ( elements ) . to . be . instanceof ( HTMLCollection ) ;
44+ expect ( elements ) . to . have . property ( 'class ' , elementClassName ) ;
4245 } ) ;
4346
4447
4548 it ( '4 番の水色の要素(CSS クラス名は "turquoise")が2つ取得できる' , function ( ) {
4649 var elementClassName = 'turquoise' ;
4750
48- // 'change me!' 部分を書き換えてください 。
51+ // 'change me!' を書き換えてください 。
4952 var elements = 'change me!' ;
5053
5154 // 参考資料
5255 // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByClassName
5356
54- expect ( elements ) . to . have . length ( 2 ) ;
57+ expect ( elements ) . to . be . instanceof ( HTMLCollection ) ;
5558 expect ( elements [ 0 ] ) . to . have . property ( 'className' , elementClassName ) ;
5659 expect ( elements [ 1 ] ) . to . have . property ( 'className' , elementClassName ) ;
5760 } ) ;
@@ -60,38 +63,32 @@ describe('ステージ1(意図した DOM 要素を取得できるようにな
6063 it ( '5 番の青色の要素(タグ名は "blockquote")が1つ取得できる' , function ( ) {
6164 var elementTagName = 'blockquote' ;
6265
63- // 'change me!' 部分を書き換えてください 。
66+ // 'change me!' を書き換えてください 。
6467 var elements = 'change me!' ;
6568
6669 // 参考資料
6770 // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByTagName
6871
69- expect ( elements ) . to . have . length ( 1 ) ;
72+ expect ( elements ) . to . be . instanceof ( HTMLCollection ) ;
7073 expect ( elements [ 0 ] ) . to . have . property ( 'tagName' , elementTagName . toUpperCase ( ) ) ;
7174 } ) ;
7275
7376
74- it ( '6 番の紫色の要素(name 属性の値は "blueviolet")が1つ取得できる' , function ( ) {
75- var elementNameAttr = 'blueviolet' ;
76-
77- // 'change me!' 部分を書き換えてください。
78- var elements = 'change me!' ;
79-
80- // 参考資料
81- // https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByName
82-
83- expect ( elements ) . to . have . length ( 1 ) ;
84- expect ( elements [ 0 ] . attributes . name . value ) . to . equal ( elementNameAttr ) ;
77+ it . skip ( '6 番の紫色の要素(data-js-training 属性の値は "blueviolet")が1つ取得できる' , function ( ) {
78+ // document.querySelector を学ばないと取得することができません!
79+ // 次に進んでください。
8580 } ) ;
8681 } ) ;
8782
8883
89- describe ( 'ツール編 ' , function ( ) {
84+ describe ( '開発ツール編 ' , function ( ) {
9085 it ( '7 番の赤色の要素が1つ取得できる' , function ( ) {
9186
87+ // チュートリアル
88+ //
9289 // 調べたい要素の上で右クリック > 要素の検証
9390 //
94- // 'change me!' 部分を書き換えてください 。
91+ // 'change me!' を書き換えてください 。
9592 var element = 'change me!' ;
9693
9794 expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'oebja' ) ) ;
@@ -100,7 +97,7 @@ describe('ステージ1(意図した DOM 要素を取得できるようにな
10097
10198 it ( '8 番の橙色の要素が1つ取得できる' , function ( ) {
10299
103- // 'change me!' 部分を書き換えてください 。
100+ // 'change me!' を書き換えてください 。
104101 var element = 'change me!' ;
105102
106103 expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'qnexbenatr' ) ) ;
@@ -109,7 +106,7 @@ describe('ステージ1(意図した DOM 要素を取得できるようにな
109106
110107 it ( '9 番の緑色の要素が1つ取得できる' , function ( ) {
111108
112- // 'change me!' 部分を書き換えてください 。
109+ // 'change me!' を書き換えてください 。
113110 var elements = 'change me!' ;
114111
115112 expect ( elements ) . to . have . length ( 1 ) ;
@@ -119,7 +116,7 @@ describe('ステージ1(意図した DOM 要素を取得できるようにな
119116
120117 it ( '10 番の水色の要素が2つ取得できる' , function ( ) {
121118
122- // 'change me!' 部分を書き換えてください 。
119+ // 'change me!' を書き換えてください 。
123120 var elements = 'change me!' ;
124121
125122 expect ( elements ) . to . have . length ( 2 ) ;
@@ -130,22 +127,201 @@ describe('ステージ1(意図した DOM 要素を取得できるようにな
130127
131128 it ( '11 番の青色の要素が1つ取得できる' , function ( ) {
132129
133- // 'change me!' 部分を書き換えてください 。
130+ // 'change me!' を書き換えてください 。
134131 var elements = 'change me!' ;
135132
136133 expect ( elements ) . to . have . length ( 1 ) ;
137134 expect ( elements [ 0 ] ) . to . have . property ( secret ( 'gntAnzr' ) , secret ( 'C' ) ) ;
138135 } ) ;
139136
140137
141- it ( '12 番の紫色の要素が1つ取得できる' , function ( ) {
138+ it . skip ( '12 番の紫色の要素が1つ取得できる' , function ( ) {
139+ // document.querySelector を学ばないと取得することができません!
140+ // 次に進んでください。
141+ } ) ;
142+ } ) ;
143+
144+
145+ describe ( '基本 CSS セレクタ編' , function ( ) {
146+ it ( '1 番の赤色の要素を querySelector を使って1つ取得できる' , function ( ) {
147+
148+ // チュートリアル
149+ //
150+ // 'change me!' を document.querySelector('#firebrick'); に
151+ // 書き換えてください。
152+ var element = 'change me!' ;
153+
154+ // 参考資料
155+ // https://developer.mozilla.org/ja/docs/DOM/Locating_DOM_elements_using_selectors
156+
157+ expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'sveroevpx' ) ) ;
158+ } ) ;
159+
160+
161+ it ( '2 番の橙色の要素を querySelector を使って1つ取得できる' , function ( ) {
142162
143- // 'change me!' 部分を書き換えてください。
163+ // 'change me!' を書き換えてください。
164+ var element = 'change me!' ;
165+
166+ // 参考資料
167+ // https://developer.mozilla.org/ja/docs/Web/CSS/Reference#Selectors
168+
169+ expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'pubpbyngr' ) ) ;
170+ } ) ;
171+
172+
173+ it ( '3 番の緑色の要素を querySelector を使って1つ取得できる' , function ( ) {
174+
175+ // 'change me!' を書き換えてください。
176+ var element = 'change me!' ;
177+
178+ expect ( element ) . to . have . property ( secret ( 'pynffAnzr' ) , secret ( 'zrqvhzfrnterra' ) ) ;
179+ } ) ;
180+
181+
182+ it ( '4 番の水色の要素を querySelectorAll を使って2つ取得できる' , function ( ) {
183+
184+ // 'change me!' を書き換えてください。
144185 var elements = 'change me!' ;
145186
146- expect ( elements ) . to . have . length ( 1 ) ;
147- expect ( elements [ 0 ] ) . to . have . deep . property ( secret ( 'nggevohgrf.anzr.inyhr' ) ,
148- secret ( 'qnexbepuvq' ) ) ;
187+ expect ( elements ) . to . have . length ( 2 ) ;
188+ expect ( elements [ 0 ] ) . to . have . property ( secret ( 'pynffAnzr' ) , secret ( 'ghedhbvfr' ) ) ;
189+ expect ( elements [ 1 ] ) . to . have . property ( secret ( 'pynffAnzr' ) , secret ( 'ghedhbvfr' ) ) ;
190+ } ) ;
191+
192+
193+ it ( '5 番の青色の要素を querySelector を使って1つ取得できる' , function ( ) {
194+
195+ // 'change me!' を書き換えてください。
196+ var element = 'change me!' ;
197+
198+ expect ( element ) . to . have . property ( secret ( 'gntAnzr' ) , secret ( 'OYBPXDHBGR' ) ) ;
199+ } ) ;
200+
201+
202+ it ( '6 番の紫色の要素を querySelector を使って1つ取得できる' , function ( ) {
203+
204+ // 'change me!' を書き換えてください。
205+ var element = 'change me!' ;
206+
207+ expect ( element ) . to . have . deep . property ( secret ( 'qngnfrg.wfGenvavat' ) ,
208+ secret ( 'oyhrivbyrg' ) ) ;
209+ } ) ;
210+ } ) ;
211+
212+
213+ describe ( '応用 CSS セレクタ編' , function ( ) {
214+ it ( '7 番の赤色の要素を ID セレクタを使わずに1つ取得できる' , function ( ) {
215+
216+ // チュートリアル
217+ //
218+ // 'change me!' を document.querySelector('.js-training:nth-child(2) li')
219+ // に書き換えてください。
220+ var selector = 'change me!' ;
221+
222+ var element = document . querySelector ( selector ) ;
223+ expect ( selector ) . to . not . have . string ( '#' ) ;
224+ expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'oebja' ) ) ;
225+ } ) ;
226+
227+
228+ it ( '8 番の橙色の要素を ID セレクタを使わずに1つ取得できる' , function ( ) {
229+
230+ // 'change me!' を書き換えてください。
231+ var selector = 'change me!' ;
232+
233+ // 参考資料
234+ // https://developer.mozilla.org/ja/docs/Web/CSS/Reference#Selectors
235+
236+ var element = document . querySelector ( selector ) ;
237+ expect ( selector ) . to . not . have . string ( '#' ) ;
238+ expect ( element ) . to . have . property ( secret ( 'vq' ) , secret ( 'qnexbenatr' ) ) ;
239+ } ) ;
240+
241+
242+ it ( '12 番の紫色の要素を、属性セレクタと :nth-child(N) セレクタを使わずに1つ取得できる' , function ( ) {
243+
244+ // 'change me!' を書き換えてください。
245+ var selector = 'change me!' ;
246+
247+ var element = document . querySelector ( selector ) ;
248+ expect ( selector ) . to . not . match ( / \[ \s * n a m e \s * [ ~ \| \^ \$ \* ] ? = / ) ;
249+ expect ( selector ) . to . not . have . string ( ':nth-child' ) ;
250+ expect ( element ) . to . have . deep . property ( secret ( 'qngnfrg.wfGenvavat' ) ,
251+ secret ( 'qnexbepuvq' ) ) ;
252+ } ) ;
253+ } ) ;
254+
255+
256+ describe ( 'jQuery 編' , function ( ) {
257+ it ( '7 番の赤色の要素を jQuery を使って1つ取得できる' , function ( ) {
258+
259+ // チュートリアル
260+ //
261+ // 基本的な使い方は document.querySelectorAll と同じです。
262+ //
263+ // 'change me!' を $('#brown') に書き換えてください。
264+ var $element = 'change me!' ;
265+
266+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
267+ expect ( $element ) . to . have . id ( secret ( 'oebja' ) ) ;
268+ } ) ;
269+
270+
271+ it ( '8 番の橙色の要素を jQuery を使って1つ取得できる' , function ( ) {
272+
273+ // 'change me!' を書き換えてください。
274+ var $element = 'change me!' ;
275+
276+ // 参考情報(英語)
277+ // http://api.jquery.com/jQuery/#jQuery1
278+
279+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
280+ expect ( $element ) . to . have . id ( secret ( 'qnexbenatr' ) ) ;
281+ } ) ;
282+
283+
284+ it ( '9 番の緑色の要素を jQuery を使って1つ取得できる' , function ( ) {
285+
286+ // 'change me!' を書き換えてください。
287+ var $element = 'change me!' ;
288+
289+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
290+ expect ( $element ) . to . have . class ( secret ( 'yvzrterra' ) ) ;
291+ } ) ;
292+
293+
294+ it ( '10 番の水色の要素を jQuery を使って2つ取得できる' , function ( ) {
295+
296+ // 'change me!' を書き換えてください。
297+ var $element = 'change me!' ;
298+
299+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
300+ expect ( $element ) . to . have . length ( 2 ) ;
301+ expect ( $element ) . to . have . class ( secret ( 'zrqvhzghedhbvfr' ) ) ;
302+ } ) ;
303+
304+
305+ it ( '11 番の青色の要素を jQuery を使って1つ取得できる' , function ( ) {
306+
307+ // 'change me!' を書き換えてください。
308+ var $element = 'change me!' ;
309+
310+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
311+ expect ( $element ) . to . have . length ( 1 ) ;
312+ expect ( $element . get ( 0 ) ) . to . have . property ( secret ( 'gntAnzr' ) , secret ( 'C' ) ) ;
313+ } ) ;
314+
315+
316+ it ( '12 番の紫色の要素を jQuery を使って1つ取得できる' , function ( ) {
317+
318+ // 'change me!' を書き換えてください。
319+ var $element = 'change me!' ;
320+
321+ expect ( $element ) . to . be . instanceof ( jQuery ) ;
322+ expect ( $element ) . to . have . length ( 1 ) ;
323+ expect ( $element ) . to . have . data ( secret ( 'wfGenvavat' ) ,
324+ secret ( 'qnexbepuvq' ) ) ;
149325 } ) ;
150326 } ) ;
151327} ) ;
0 commit comments