- ベストアンサー
JavascriptからのCSSによる表示・非表示制御
よろしくお願いします。 Javascriptからスタイルシートの表示・非表示の制御をしようとしています。まず、下記の一文を見ていただきたいのですが $("object").css("visibility","hidden"); 1.上記の記述の意味をできれば詳しく解説していただきたいのです。 ($("object")は何を指す・・・とか) 2.上記記述で、IE6、IE8、FF3、Safariなどでは動作するのですが、IE7やIE8の互換表示では上記がうまく動作しないようなのですが、IE7でも動くようにするにはどうすればよいでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$(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>の要素 等のように選択できます。組み合わせ、階層、フィルターに よる選択も$()で行います。
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
<!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
補足
何度もありがとうございます。 > <?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)
補足 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"> のように指定する必要があります。
補足
DOCTYPE宣言が現在 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> と、XHTMLなのですが、XHTMLではjQueryは正常に動作しないと言うことですか?
お礼
なるほど、よく分かりました。 リファレンスや解説ページを読む暇がなかったので(まぁ、いいわけになりますけどね・・・)、とても参考になりました。 ちなみに、お察しの通りjQueryです。ありがとうございました。