• ベストアンサー

CSSのJavaScript参照

JavaScriptによって変数に代入された文字列をCSSで参照し、 指定した場所に表示したいのですが、変数名が表示され代入された文字列が表示されません。 ソース <html><head> <title>a</title> <style type="text/css"> <!-- .str{ top:100px; left:10px; position:absolute; }--> </style> </head> <body> <div class="str3">str();</div> //ここで変数strに代入されたaを表示したい <SCRIPT LANGUAGE="JavaScript"> str = "a"; str(){document.write(str);} </SCRIPT></body></html> 初心者のため、間違いが多々あると思いますがよろしくお願いします。

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

  • ベストアンサー
  • uuyn2006
  • ベストアンサー率50% (24/48)
回答No.2

こんばんわ^^ このままでは動きませんね~ HTMLとJAVAScriptは別々のものと考えなければなりませんので、 ><div class="str3">str();</div> //ここで変数strに代入されたaを表示したい と言う部分ですが、これではdivタグに挟まれた「str();」と言う文字列とブラウザは認識してしまいます。 なので、 <html> <head> <title>sampleSCRIPT</title> <style type="text/css"> <!-- .str{ top:100px; left:10px; position:absolute; }--> </style> </head> <body> <SCRIPT LANGUAGE="JavaScript"> str = "a"; document.write("<div class='str'>"+str+"</div>"); </SCRIPT></body></html> こうすれば動くと思いますが、スタイルシートはこのままでは反映されないと思うのですが・・・

burnquist
質問者

お礼

早々の返信ありがとうございました、問題は解決いたしました。また質問を投稿することがあるかと思いますが、その節はよろしくご指導ねがいます。

その他の回答 (2)

  • abacabu
  • ベストアンサー率37% (250/663)
回答No.3

趣味でHPを作成している者です <html><head> <title>a</title> <style type="text/css"> <!-- .str{ top:100px; left:10px; position:absolute; }--> </style> </head> <body> <div class="str3">str();</div> //ここで変数strに代入されたaを表示したい <SCRIPT LANGUAGE="JavaScript"> str = "a"; str(){document.write(str);} </SCRIPT></body></html> という事ですが、後半の <SCRIPT LANGUAGE="JavaScript"> str = "a"; str(){document.write(str);}</SCRIPT> は、 <div class="str3">str();</div>の <div class="str3"> <SCRIPT LANGUAGE="JavaScript"> str = "a"; str(){document.write(str);}</SCRIPT> </div> <div></div>の間で良いとおもいます。 あとCSSですが <style type="text/css"> <!-- .str{} なら<div class="str3">ではなく <div class="str">です。 最後にこのJavaScriptですが只文字列を書き出すスクリプトですよね 特に関数を実行するボタンもなければアクションもありませんので 画面が出てから、ずーっと出っ放しになるのですが…。 わざわざJavaScriptで書かずに普通に書いてはどうですか? 時間帯によって表示を変えるタイプですかね?? 質問に記述はないですが…。 なにかこうまどろっこしく感じたもので…。

burnquist
質問者

お礼

JavaScriptで文字列操作したあとCSSで表示したかったのですが、文字列受け渡し部分が分からなかったので、簡単に書かせていただきました。説明不足ですいません。問題は解決しました、ありがとうございました。

noname#23734
noname#23734
回答No.1

<div class="str3"> <SCRIPT LANGUAGE="JavaScript"> str = "a"; document.write(str); </SCRIPT> </div> //ここで変数strに代入されたaを表示したい

関連するQ&A

  • JavaScript内からJavaScriptを書き出したいのですが

    こんにちは. JavaアプレットとJavaScriptを利用してJavaScriptを書き出すコードを書いてみたのですが,うまく動きません.具体的なコードは以下のようで,リンクはできるのですが,マウスを乗せるとオブジェクトを指定してくださいとエラーがでます.innerHTMLでJavaScriptを書き出すことはできないのでしょうか? <html> ・・・ <body> <SCRIPT language="JavaScript" type="text/javascript"> <!-- function dWrite(){ str='<script type="text/javascript">functionLinkMo(){varLM1;LM1=window.open"","Doc","toolbar=no,location=no,kdirectories=no,width=300,height=250");LM1.document.write"<html><head><title></title></head><body>testです/body></html>");LM1.document.close();}</script><body>rinku <ahref="#"onMouseOver="LinkMo()">ここにのせると</a></body></html>'; document.getElementById("here").innerHTML=str;} //--> </script> <applet ・・・dWriteを呼び出す></applet> <div id="here" style="position:absolute;width:600px; left:0px;top:0px;"> </div></body></html>

  • css javascriptについて教えて下さい。

    下記のように、ボタンを押すとdivタグの中にpタグを表示するようにしました。 そこで、そのpタグがdivタグの中央から表示するようにしたいのですが、できません。cssでpタグの左右のmarginをautoにするのかくらいしか思いつかず困っています。pタグがdivタグの中央から表示されるようにするにはどうしたらよいでしょうか。教えて下さい。 <!doctype html> <html> <head> <meta charset="utf-8"> <title>無題ドキュメント</title> <style> #w{ width:500px; height:50px; border : solid 1px; overflow: hidden; } p{ display:inline-block; width:50px; height:50px; margin-left:auto; margin-right:auto; } </style> <script type="text/javascript" language="javascript"> var count = 0; var box; window.onload = function() { box = document.getElementById("w"); } function btnClick(){ var pNode = document.createElement("p"); pNode.innerHTML = count;   box.appendChild(pNode); count ++; } </script> </head> <body> <div id="w"></div> <button onClick="btnClick()">Pタグを生成</button> </body> </html>

    • ベストアンサー
    • HTML
  • JavaScriptのinnerHTMLの挙動について

    下で"JavaScript内からJavaScriptを書き出したいのですが"で質問したものですが,ソースコードを簡単にして再質問したいと思います. ソースは以下のようにし,divタグのところにinnerHTMLで文字"test"とJavaScriptでアラートを表示させるものです.表示してみたところ,"test"は表示されるのですが,アラートは出てきません. これはinnerHTMLではHTMLのタグは評価されるが,JavaScriptは評価されない,ということなんでしょうか.JavaScriptのこのような仕様は調べにくいので困っています.回答宜しくお願いします. <html><head><title></title> <SCRIPT type="text/javascript"> <!-- var str='<font color="blue">test</font><script type="text/javascript">alert(123);</script>'; function gogo(){ document.all("here").innerHTML = str; } //--> </SCRIPT> </head><body> <div id="here" style="position:absolute;width:600px;left:0px;top:0px;"></div> <SCRIPT type="text/javascript"> <!-- gogo(); //--> </SCRIPT></body></html>

  • javascriptにてcss切り替え

    現在webサイトを作成しており、javascriptのcss切り替えにてページの色変更を作っています。 (青、緑、赤、三色で作成) デフォは青で表示しています。 その後緑、赤とリンクで色が変わるようにしています。 ここでご質問です。 緑をクリックした場合は緑に変わる(赤も同様)のですが、別ページにリンクした場合、緑(赤)ではなく青に戻ってします。 別ページにとんでも緑(赤)が引き継がれるにはどのように記述したらよろしいでしょうか? ソースは以下のとおりです。 <head> <link rel="stylesheet" type="text/css" href="css/blue/top.css" media="all" /> <script src="js/styleswitch.js" type="text/javascript"></script> <link rel="alternate stylesheet" type="text/css" title="blue" href="css/blue/top.css" media="all" /> <link rel="alternate stylesheet" type="text/css" title="green" href="css/green/top.css" media="all" /> <link rel="alternate stylesheet" type="text/css" title="red" href="css/red/top.css" media="all" /> </head> <body> <div style="width:200px;"> <a href="javascript:chooseStyle('blue', 30)">青</a><br /> <a href="javascript:chooseStyle('green', 30)">緑</a><br /> <a href="javascript:chooseStyle('red', 30)">赤</a> </div> </body> javascriptは以下のところからしようしています。 http://noongoro.main.jp/note/note0059.html javascriptは初心者です。 ご教授お願いいたします。

  • javascriptで困っています

    初心者webプログラマーです javascriptでエンドロールのようなものを作ろうとしています。以下の1つのhtmlファイルで作ると動くのですが <html> <head> <title>エンドロール</title> <style type="text/css"> #txt{ position: absolute; top: 320px; } #container{ width:320px; height:320px; position:relative; top:0px; left:0px; overflow:hidden; } </style> </head> <body onLoad="setInterval('endroll()', 50);"> <script type="text/javascript"> var y = 320; function endroll(){ document.getElementById("txt").style.top = y; y -= 2; if(y<-400){y=320} } </script> <div id="container"> <div id="txt"> aaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb ccccccccccccccccccccc ddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeee fffffffffffffffffffff ggggggggggggggggggggg hhhhhhhhhhhhhhhhhhhhh iiiiiiiiiiiiiiiiiiiii </div> </div> </body> </html> これを、htmlファイル、cssファイル、jsファイルに分けてつくると、動かなくなります-----index.html---------------------------------------------------------------------- <html> <head> <link rel="stylesheet" href="endroll.css" type="text/css" /> <script src="endroll.js"></script> <title>エンドロール</title> </head> <body> <div id="container"> <div id="txt"> aaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb ccccccccccccccccccccc ddddddddddddddddddddd eeeeeeeeeeeeeeeeeeeee fffffffffffffffffffff ggggggggggggggggggggg hhhhhhhhhhhhhhhhhhhhh iiiiiiiiiiiiiiiiiiiii </div> </div> </body> </html> -------endroll.css--------------------------------------------------------------- @charset "utf-8"; #txt{ position: absolute; top: 320px; } #container{ width:320px; height:320px; position:relative; top:0px; left:0px; overflow:hidden; } ---------endroll.js-------------------------------------------------------------- window.onload = function(){ start_endroll(); } var y = 320; // 繰り返し処理の内容 function endroll(){ document.getElementById("txt").style.top = y; y -= 2; if(y<-400){y=320} } // 繰り返し処理の開始 function start_endroll() { timerID = setInterval('endroll()',50); } いろいろ調べてみたのですが、解決できませんでした。長い質問になりましたが、どなたか教えていただければありがたいです。よろしくお願いします。

  • すいません、このタグですが、自動で始まるようにならないでしょうか?

    <title>1行づつ画面上に出力する</title> <STYLE type="text/css"> <!-- div{font-size:20pt; } --> </STYLE> <script Language="JavaScript"><!-- str = new Array(); str[0] = "Sample text...(^^)/<br>"; str[1] = "1行づつ表示します。<br>"; str[2] = "By KaZuhiro FuRuhata<br>"; str[3] = "<a href='http://www.shiojiri.ne.jp/~openspc/'>OpenSpace</a>"; count = 0; function setTextLine() { if (count >= str.length) return; txt = ""; count++; for (i=0; i<count; i++) txt += str[i]; if (document.all) document.all["outText"].innerHTML = txt; setTimeout("setTextLine()",1000); } // --></script> </head> <body> <DIV id="outText" style="position:absolute;top : 167px;left : 112px;"></DIV> <DIV style="width : 139px;height : 76px;top : 10px;left : 146px; position : absolute; z-index : 1; " id="Layer1"><a href="javaScript:setTextLine()">出力開始</a></DIV> </body>

  • IEだけで動きません。Javascriptに関する質問です。

    IEだけで動きません。Javascriptに関する質問です。 初心者です。よろしくお願いします。 下記のページを作りました。 menuをクリックすると、ページが現れるようにしています。aaa.jsで制御しています。 ページの高さがそれぞれ違うので、bbb.jsで高さを取得しています。 IEでは、bbb.jsのwindow.parent.document.getElementById('obj')で「オブジェクトがありません」とエラーが出て、動きません。 他のブラウザでは動きました。 どうしてでしょう? 悩んでいます。 どなたか教えてください。よろしくお願いいたします。 <html>   <head> <link rel="stylesheet" type="text/css" href="main.css" media="screen,print" /> <script type="text/javascript" src="aaa.js"></script>   </head> <body>   <div id="container">   </div>       <div id="menu">    <ul>    <li><a href="javascript:changeObj('a.htm')" title="a">a</a></li>    <li><a href="javascript:changeObj('b.htm')" title="b">b</a></li>    <li><a href="javascript:changeObj('c.htm')" title="c">c</a></li>    </ul>   </div>     </body> </html> ***aaa.js*** /* オブジェクトの変更 */ function changeObj(html){ var contents = '<object id="obj" data="' + html + '" type="text/html"><\/object>'; window.document.getElementById('container').innerHTML = contents; } ***main.css*** /* obj */ #obj{ visibility:hidden; position:absolute; right:5%; min-width:560px; background-color:#CCFFFF; z-index:1; border-style:none; overflow:visible; } ***a.htm*** <html>  <head> <script type="text/javascript" src="bbb.js"></script>  </head>   <body> <div id="page-height"> <div id="a"><!--ここにページ内容--> </div> </div>   </body> </html>

  • javascript php 連携

    よろしくお願いします。 javascriptの『onchange』値をPHPの変数に入れたいと苦戦しています。 <html> <head> <script type="text/javascript"> function hoge1(){ var x = $('str1').options[$('str1').selectedIndex].text; やりたいことはここでPHPの変数『list_a』にjavascriptの変数『x』の値を入れたいです。 } </script> </head> <body> ここに結果表示 <?= $list_a; ?> <select id="str1" name="str1" onchange="hoge1()"> <option>hoge1</option> <option>hoge2</option> <option>hoge3</option> </select> </body> </html> よろしくお願いいたします。 ちなみにAjaxは全くわかりませんのですいません。。。

    • ベストアンサー
    • PHP
  • javascriptで外部cssの値の変更

    以下のような外部cssのjavascirptでの値の変更のしかたを教えて下さい a.css #head{ margin:0px; padding:0px; background-color:#ccffcc;←この値を変更したい } a.html <html> <head> <link rel="stylesheet" type="text/css" href="a.css" media="all" id="cssa"> </head> <body> <div id="head"></div> </body> </html>

  • Javascriptを使うのか、CSSでできるのか…?

    初心者です。 持っている本のリストを作っています。 フリーのCGIプログラムを使用しています。 <html> <head> <title>[name.]</title> <style type="text/css"> ~~~ </style> </head> <body bgcolor="#000000"> <div id="title1">[name.]</div> <message> <table class="zzz"> <tr> <td class="no1">[$AAA.]</td> <td class="no2">[$BBB.]</td> <td class="no3">[$CCC.]</td> </tr> </table> </message> </body> </HTML> [$AAA.]の部分にはタイトル、[$BBB.]の所には作者名、[$CCC.]のところには未読or既読 が表示されます。 <message>~</message> の中の情報が繰り返されることになります。 class="no..."の部分はCSSでデザインを定義しています。 そこでご相談なのですが、例えば[$CCC.]の部分に「既読」と入力すると、その作品の行に色が付くようにできないでしょうか。 (この作品は既読だと、パッと見てわかりやすいようにしたいのです) Javascriptを使うのか、CSSでできるのか…。何を使うのかすらわからない状況で困っています。 質問もおかしいところがあるかと思いますが、よろしくお願いします。

専門家に質問してみよう