• ベストアンサー

javascript 初心者です。

下記のソースのどこが間違っているのでしょうか。 <body> <script type="text/javascript" language="javascript"> <!-- var us; us = document.getElementById("uuss"); if ( us == 0 ){ document.write("オッケーです。"); }else if ( us == 1 ){ document.write("エヌジーです"); }else if ( us == 2 ){ document.write("未定です"); }else if ( us == 3 ){ document.write("空欄です"); } // --> </script> <div id="uuss">1</div> </body> 例えば<div id="uuss"> </div>の部分に1と入力すると、 「エヌジーです」という文字列を表示させたいのですが ブラウザで見ると「1」と出てしまいます。 よろしくお願いします。

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

  • ベストアンサー
  • tochansa
  • ベストアンサー率76% (23/30)
回答No.6

ごめんなさい。訂正です。空欄ですのところに余計な"が入ってました。 <body> <div id="uuss">1</div> <script type="text/javascript" language="javascript"> <!-- var us; us = document.getElementById("uuss").innerHTML; if ( us == 0 ){ document.getElementById("uuss").innerHTML="オッケーです。"; }else if ( us == 1 ){ document.getElementById("uuss").innerHTML="エヌジーです"; }else if ( us == 2 ){ document.getElementById("uuss").innerHTML="未定です"; }else if ( us == 3 ){ document.getElementById("uuss").innerHTML="空欄です"; } // --> </script> </body>

ichigou777
質問者

お礼

ありがとうございます! やりたいことが実現できました!感謝です!

すると、全ての回答が全文表示されます。

その他の回答 (6)

回答No.7

ごみ投下!uuss以降にスクリプトは置いてね。 「型」ではなく「短」へ、ちょっと誘惑^^; <div id="uuss">1</div> <script type="text/javascript"> with(document.getElementById('uuss'))innerHTML='おーけえ えぬじぃ みてい くうらん'.split(' ')[+innerHTML] </script> 「マルチ ネチケット」とかも検索してね。

すると、全ての回答が全文表示されます。
  • tochansa
  • ベストアンサー率76% (23/30)
回答No.5

ではこれで。Divの中身を書き換えます。 <body> <div id="uuss">1</div> <script type="text/javascript" language="javascript"> <!-- var us; us = document.getElementById("uuss").innerHTML; if ( us == 0 ){ document.getElementById("uuss").innerHTML="オッケーです。"; }else if ( us == 1 ){ document.getElementById("uuss").innerHTML="エヌジーです"; }else if ( us == 2 ){ document.getElementById("uuss").innerHTML="未定です"; }else if ( us == 3 ){ document.getElementById("uuss").innerHTML=""空欄です"; } // --> </script> </body>

すると、全ての回答が全文表示されます。
  • tasoh
  • ベストアンサー率45% (19/42)
回答No.4

No1です。 順序だけじゃなかったですね、失礼しました。 よく見てみたら us = document.getElementById("uuss"); のところ、これでは <div id="uuss">1</div> の1を取得することはできません。 divタグのオブジェクトを取得しただけなので us = document.getElementById("uuss").innerHTML; とする必要があると思います。

すると、全ての回答が全文表示されます。
  • tochansa
  • ベストアンサー率76% (23/30)
回答No.3

こんなんでどうでしょ <body> <div id="uuss">1</div> <script type="text/javascript" language="javascript"> <!-- var us; us = document.getElementById("uuss").innerHTML; if ( us == 0 ){ document.write("オッケーです。"); }else if ( us == 1 ){ document.write("エヌジーです"); }else if ( us == 2 ){ document.write("未定です"); }else if ( us == 3 ){ document.write("空欄です"); } // --> </script> </body>

ichigou777
質問者

補足

ありがとうございます。 試してみましたところ、「1」の数字の下に「エヌジーです」と表示されます。この「1」さえ消せればいいのですが…。

すると、全ての回答が全文表示されます。
回答No.2

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Q5673907 TestCase 1</title> <script type="text/javascript"> //<![CDATA[ //文書が読み込まれてから関数を実行する。 function init(){ var us; //静的型付きの言語じゃないけど常に型を意識。 //ただ、文字列専用のparseが出来ないのが非常に辛い us = Number(document.getElementById("uuss").childNodes[0].nodeValue); alert(us); // //俺の好みの問題でまだ直接表示用の要素のnodeValueには代入しない。 //switchやArray.indexOfとかの方が好きな人もいるかも var str; if ( us == 0 ){ str = "OKです。"; }else if ( us == 1 ){ str = "NGです。"; }else if ( us == 2 ){ str = "未定です。"; }else if ( us == 3 ){ str = "空欄です。"; } while(document.getElementById("output").childNodes.length >= 1){ document.getElementById("output").removeChild(document.getElementById("output").childNodes[0]); } document.getElementById("output").appendChild(document.createTextNode(str)); } //]]> </script> </head> <body onload="init();"> <div id="output"></div> <div id="uuss">1</div> </body> </html>

ichigou777
質問者

補足

ありがとうございます。 やりたい事に近づきましたが、 まず「1」と表示され、すぐに "javascript"というダイアログが出て、OKを押した後に「1」の数字の上に「NGです」と表示されます。 ダイアログや「1」を出さずに、「NGです」と表示するのは難しいでしょうか…??

すると、全ての回答が全文表示されます。
  • tasoh
  • ベストアンサー率45% (19/42)
回答No.1

記述する順序ではないでしょうか? ブラウザは上から順に読みとられるので <div id="uuss">1</div> を先に記述する必要があります。 それかJavaScriptを<head></head>内に関数として定義しておき <body></body>の一番最後にその関数を呼び出す..とかでしょうか。

ichigou777
質問者

補足

ありがとうございます。 試してみたところ、順序だけの問題ではなさそうです…。

すると、全ての回答が全文表示されます。

関連するQ&A