• ベストアンサー

JavascriptからのCSSによる表示・非表示制御

よろしくお願いします。 Javascriptからスタイルシートの表示・非表示の制御をしようとしています。まず、下記の一文を見ていただきたいのですが $("object").css("visibility","hidden"); 1.上記の記述の意味をできれば詳しく解説していただきたいのです。 ($("object")は何を指す・・・とか) 2.上記記述で、IE6、IE8、FF3、Safariなどでは動作するのですが、IE7やIE8の互換表示では上記がうまく動作しないようなのですが、IE7でも動くようにするにはどうすればよいでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

$(xxx)は、javascriptというより、javascriptライブラリーで htmlの要素の選択によく使われる構文です。 prtotype.jsとかjQueryとかMooToolsなんかに $(xxx) の構文があります。ライブラリーによって意味や使い方が違います。  お使いのライブラリーのリファレンスや解説ページで確認された方がよろしいかと思います。 $("object").css("visibility","hidden"); はjQueryっぽいですね。jQueryだとして、 これを普通のjavascriptで書くと var elements = document.getElementsByTagName("object"); for(var i=0;i<elements.length;i++){ elements[i].style.visibility="hidden"; } といったところでしょう。 jQueryだと$()はセレクターとして働き、  $("#hoge") --- ID="hoge"の要素  $(".hoge") --- classs="hoge"の要素  $("hoge") --- <hoge>の要素 等のように選択できます。組み合わせ、階層、フィルターに よる選択も$()で行います。

ok-rjak
質問者

お礼

なるほど、よく分かりました。 リファレンスや解説ページを読む暇がなかったので(まぁ、いいわけになりますけどね・・・)、とても参考になりました。 ちなみに、お察しの通りjQueryです。ありがとうございました。

その他の回答 (2)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">​ と、XHTMLなのですが、XHTMLではjQueryは正常に動作しないと言うことですか? =>おかしいですね、IE7でそれだと標準モードになるはずですけどね。 互換モードだと、jQUERYはうまくいかないです。 DOC宣言の前に <?xml version="1.0" encoding="utf-8"> があると互換モードになってしまうIEもあるとか? 下記が参考になります http://w3g.jp/others/data/doctype_switching http://hxxk.jp/2008/09/29/0118#sub-20080929-06

ok-rjak
質問者

補足

何度もありがとうございます。 > <?xml version="1.0" encoding="utf-8"> 上記記述がなく、 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> と続いています。 何が悪いのか、皆目見当が付かない次第です。 ありがとうございました。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

補足 1.上記の記述の意味をできれば詳しく解説していただきたいのです。 .css("visibility","hidden") はjQueryのAPI(メソッド)です。  下記参考サイトを見て下さい。 http://docs.jquery.com/Core http://semooh.jp/jquery/ http://www.openspc2.org/JavaScript/Ajax/ref/jQuery/ver1.3.2/index.html 2.上記記述で、IE6、IE8、FF3、Safariなどでは動作するのですが、IE7やIE8の互換表示では上記がうまく動作しないようなのですが、IE7でも動くようにするにはどうすればよいでしょうか? => jQUERYをまともに使うならDOC宣言文を <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> のように指定する必要があります。

ok-rjak
質問者

補足

DOCTYPE宣言が現在 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> と、XHTMLなのですが、XHTMLではjQueryは正常に動作しないと言うことですか?

関連するQ&A