• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryでサンプルと同じ結果が出ない)

jQueryでサンプルと同じ結果が出ない

このQ&Aのポイント
  • jQueryを学び始めて間もない私が利用しているバージョンが1.7.1で、参考サイトのバージョンは1.3.2ですが、サンプルと同じ結果が出ません。
  • バージョンの違いによる問題かもしれませんが、原因が特定できず困っています。
  • IEではサンプル通りの結果が出るが、FireFoxでは違う結果になる状況です。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

横からですが… あまりサンプルがよろしくはなかったようで。 CSSで色を指定する方法は何種類かあるのはご存知と思います。 例えば   red、blue、greenなど色名で指定(サンプルの方法)  #ff0000、#f00 などの16進等で指定する方法  rgb(255, 0, 0) のようなrgbで指定する方法 値を設定する場合は問題ないのですが、値を取得する時はブラウザによってどのような値が返ってくるか違います。 サンプルの  if($("span").css("color") != "red"){ の前に  alert( $("span").css("color") ); を入れてみれば、どのような値が返されているのかがわかると思います。 (返される値が、"red"でなければ条件式の後の処理が実行されることになります) ブラウザの差を吸収してくれるのが、ライブラリのありがたいところの一つではありますが、吸収しきれていない部分もあるってことですね。 とりあえず、そのままで動作するようにするなら、「色が赤でなかったら処理する」という処理内容を「色が指定されていなかったら処理する」に変えてあげれば予定の動作になるかと思います。  if($("span").css("color") == undefined){ しかし、これもいろいろな意味でお薦めできる方法でないことは同様です。 サンプルのHTMLであれば「span要素が存在するかしないか」で判断するようにしても動作します。  if(!$("span").length){ まぁ、ここちらも似たり寄ったりではありますが… 学習が進めば、良い方法もわかってくるのではないかと思います。

akatsukix1
質問者

お礼

ご回答ありがとうございます。 また、別の対処法をご丁寧に教えて頂きありがとうございます。 ブラウザからの値の形式に違いがあるというのは学んだはずでしたが、完全に忘れていました。 教えて頂いたalertで調べてみたところ、確かに返ってきている値は指定とは違う形式でした。 これでは、意図通りにプログラムが動かないのも納得です。 と、半分は思うのですが、もう半分は、別バージョン(1.3.2)のjQueryでは動くのにこのバージョン(1.7.1)では動かないと言う点に疑問が残ります。 あまりいいサンプルではないということなので(初心者に分かりやすいように敢えてこういう作り方をしているのだと思いますが)、fujillinがおっしゃられるように、いい方法を自分で理解できるよう学習を進めていこうと思います。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 サイト内に記述してあるような結果が出ないというのは具体的にどういう動きの部分でしょうか。 補足をお願いいたします。

akatsukix1
質問者

補足

言葉足らずで申し訳ありません。 サンプル7では、名前のフォームが未入力の場合赤字で注意が出るのですが、submitを押し続けるとその命令が何度も実行され、注意書きが増えていきます。 それを解消するためのサンプル8のはずなのですが、サンプル7と同じくsubmitを押し続けると、注意書きが増えてしまうという状況です。 分かりづらくて申し訳ありません。

関連するQ&A