Fly higher! Sky is the limit!

webの現場で働く人のブログ

平成も終わろうとしているのにjQueryにヤラレル

事象

Google ChromeFirefoxのコンソールからJavaScriptを実行するとエラーが起きないのにサーバーにそのJavaScriptをアップすると謎のエラーが起きる。

エラー内容

Google Chrome
Cannot read property 'replace' of undefined

Firefox
TypeError: e is undefined

そもそも、replaceなんてしてないし、eが定義されてないってなんだ..?
久々に苛立ちと焦りが...これはIE6を対応していた頃を思い起こさせるような感じであった。

仕方がないので1行ずつデバックしてみる。

苛立ちや焦りは、良い波紋をうまない。
よって、安定した呼吸をしながら1行ずつデバックする必要がある。

原因発見

以下のソースが犯人のようだ

$('.className').prev('.className').css({"display":"block"}).text('やれやれだぜ。');

一見、正しそうに見える。いや、むしろ正しい。
しかし、なぜだか「cssのメソッドチェーン」ところでこける...
css({"display":"block"}) → show()にしたら、ケロッと動いた。
まったく「やれやれだぜ。」

一言

そもそもclassで出し分けすればいいのになんでこんなめんどくさいことをしないといけないかは、
システム絡みの大人の事情ということで、お察しください。
恐るべし、jQuery