Upgrade to Pro — share decks privately, control downloads, hide ads and more …

jQueryを使った怖い話

 jQueryを使った怖い話

kanazawa.rb #40 の発表です。 #kzrb

noboru ishikura

December 12, 2015
Tweet

More Decks by noboru ishikura

Other Decks in Programming

Transcript

  1. 2 who are you 石倉 昇 株式会社モンスター・ ラボ所属 受託でアプリとかWEB サー

    ビスとか作ってます 富山県の自宅でリモー トワー ク中 Twitter : @noboru_i
  2. video タグのID はv i d e o だから・・・ v a

    r v = d o c u m e n t . g e t E l e m e n t B y I d ( ' v i d e o ' ) ; v . a d d E v e n t L i s t e n e r ( ' e n d e d ' , f u n c t i o n ( ) { l o c a t i o n . h r e f = ' h t t p s : / / h o g e . c o m / v i d e o / 2 ' } , f a l s e ) ;
  3. ってことは、DOM を書き換えれば良いんだろ。 v a r v = d o c

    u m e n t . g e t E l e m e n t B y I d ( ' v i d e o ' ) ; v . a d d E v e n t L i s t e n e r ( ' e n d e d ' , f u n c t i o n ( ) { v . s r c = n e x t _ v i d e o . u r l ; } , f a l s e ) ;
  4. さっきのに追加して、 タイトルも変えればいいんだろ? 忘れてただけで簡単簡単。 v a r v = d o

    c u m e n t . g e t E l e m e n t B y I d ( ' v i d e o ' ) ; v . a d d E v e n t L i s t e n e r ( ' e n d e d ' , f u n c t i o n ( ) { v . s r c = n e x t _ v i d e o . u r l ; $ ( ' . v i d e o _ t i t l e ' ) . t e x t ( n e x t _ v i d e o . t i t l e ) ; } , f a l s e ) ;
  5. < d i v c l a s s =

    " v i d e o _ t i t l e " > < % = @ v i d e o . t i t l e % > < / d i v > < v i d e o s r c = " < % = @ v i d e o . u r l % > " > < / v i d e o > < d i v > < d i v c l a s s = " v i d e o _ d e s c r i p t i o n " > < % = @ v i d e o . d e s c r i p t i o n % > < / d i v > < d i v c l a s s = " v i d e o _ l e n g t h " > < % = @ v i d e o . l e n g t h % > < / d i v > < d i v c l a s s = " v i d e o _ p o s i t i o n " > < % = @ v i d e o . p o s i t i o n % > / < % = @ v i d e o . m a x _ p o s i t i o n % > < / d i v > < / d i v >
  6. デー タはあるから、 それを適用したらいいだけだし。 簡単簡単。 v a r v = d

    o c u m e n t . g e t E l e m e n t B y I d ( ' v i d e o ' ) ; v . a d d E v e n t L i s t e n e r ( ' e n d e d ' , f u n c t i o n ( ) { v . s r c = n e x t _ v i d e o . u r l ; $ ( ' . v i d e o _ t i t l e ' ) . t e x t ( n e x t _ v i d e o . t i t l e ) ; $ ( ' . v i d e o _ d e s c r i p t i o n ' ) . t e x t ( n e x t _ v i d e o . d e s c r i p t i o n ) ; $ ( ' . v i d e o _ l e n g t h ' ) . t e x t ( n e x t _ v i d e o . l e n g t h ) ; $ ( ' . v i d e o _ p o s i t i o n ' ) . t e x t ( n e x t _ v i d e o . p o s i t i o n + ' / ' + n e x t _ v i d e o . m a x _ p o s i t i o n ) ; } , f a l s e ) ;
  7. v a r v = d o c u m

    e n t . g e t E l e m e n t B y I d ( ' v i d e o ' ) ; v . a d d E v e n t L i s t e n e r ( ' e n d e d ' , f u n c t i o n ( ) { v . s r c = n e x t _ v i d e o . u r l ; $ ( ' . v i d e o _ t i t l e ' ) . t e x t ( n e x t _ v i d e o . t i t l e ) ; $ ( ' . v i d e o _ d e s c r i p t i o n ' ) . t e x t ( n e x t _ v i d e o . d e s c r i p t i o n ) ; $ ( ' . v i d e o _ l e n g t h ' ) . t e x t ( n e x t _ v i d e o . l e n g t h ) ; $ ( ' . v i d e o _ p o s i t i o n ' ) . t e x t ( n e x t _ v i d e o . p o s i t i o n + ' / ' + n e x t _ v i d e o . m a x _ p o s i t i o n ) ; f o r ( i n t i = 0 ; i < 4 ; i + + ) { $ s e r i e s _ b o x = $ ( ' . v i d e o _ s e r i e s _ ' + i ) ; $ ( ' . t i t i l e ' , $ s e r i e s _ b o x ) . t e x t ( s e r i e s [ i ] . t i t l e ) ; $ ( ' . t h u m b n a i l ' , $ s e r i e s _ b o x ) . s r c ( s e r i e s [ i ] . t h u m b n a i l ) ; } f o r ( i n t i = 0 ; i < 4 ; i + + ) { $ r e l a t e d _ b o x = $ ( ' . v i d e o _ r e l a t e d _ ' + i ) ; $ ( ' . t i t i l e ' , $ r e l a t e d _ b o x ) . t e x t ( r e l a t e d [ i ] . t i t l e ) ; $ ( ' . t h u m b n a i l ' , $ r e l a t e d _ b o x ) . s r c ( r e l a t e d [ i ] . t h u m b n a i l ) ; } $ ( ' . c o m m e n t _ b o x ' ) . e m p t y ( ) ; f o r ( i n t i = 0 ; i < 2 0 ; i + + ) { $ c o m m e n t = $ ( ' < d i v / > ' ) ; $ c o m m e n t . a p p e n d ( $ ( ' < d i v / > ' ) . a d d C l a s s ( ' c o m m e n t _ n a m e ' ) . t e x t ( c o m m e n t s [ i ] . n a m e ) ) ; $ c o m m e n t . a p p e n d ( $ ( ' < d i v / > ' ) . a d d C l a s s ( ' c o m m e n t _ c o n t e n t ' ) . t e x t ( c o m m e n t s [ i ] . c o n t e n t ) ) ; } } , f a l s e ) ;