• ベストアンサー

javascriptでダブルクオテーションを表示したい

検索をして調べていたのですが、なかなか思うような答えが見つからなかったので投稿しました。 document.writeで、HTMLの書き出しを行っているのですが、タグ内で class="xxx" としたいところを、ダブルクオテーションが使えなかったので、 class='xxx'と表記して動かしていました。 動作確認をIE7で動いていたのですが、IE6で動かした際に、シングルクオテーションで囲った中が全て動きませんでした。主にcssで使用しています。cssがIE6で反映されてない状態になっています。colspanなどは、括弧で囲わないようにしていました。 シングルクオテーションが原因かどうかもまだはっきりしていないのですが、ダブルクオテーションで試してみたいものの、ダブルクオテーションを入れるとjavascriptの一部になってしまい、うまく表示できません。ダブルクオテーションをhtml内に表記する方法がありましたら教えていただきたいです。よろしくお願いします。 ちなみに、下のような行がずーっと並んでいます。'の部分を"に変えたいです。 newwin.document.write("<tr><th class='shishutsu'>支出合計</th><td class='shishutsu'>"+SHISHUTSU+" 円</td></tr>\n");

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

IE6でも"で大丈夫なので、原因は他にあると思いますが、 まぁ、これはさておき、質問の内容に答えます。 JavaScriptの文字列の囲いは、'でも"でもOKですので、 文字列中に"を入れる簡単な方法は'で囲うことです。 newwin.document.write('<tr><th class="shishutsu">支出合計</th><td class="shishutsu">'+SHISHUTSU+' 円</td></tr>\n'); 別の方法として、エスケープ文字を利用して、 \"と書く方法もあります。 newwin.document.write("<tr><th class=\"shishutsu\">支出合計</th><td class=\"shishutsu\">"+SHISHUTSU+" 円</td></tr>\n"); 今回の件ではこちらの方が簡単かな。 エディタで'を\"に置換すればOKです。

sanae110
質問者

お礼

遅くなりましたがご回答ありがとうございました。 実際行ってみて、きちんとダブルクオテーションは書き出せたのですが、やはりうまく動きませんでした。 慌てて計算式から表示からぐちゃぐちゃに表記していたのでその辺に問題があるかもしれません。 取り急ぎ動くものをということだったのでひとまずCSSの使用を中止して見た目整えて完成にしました。引き続き整理しながら原因を探したいと思います。 ありがとうございました。

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

その他の回答 (2)

回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <title>Q3422890 TestCase 1</title> </head> <body> <table> <caption>テスト</caption> <script type="text/javascript"> var SHISHUTSU = 100; /* エスケープキャラクタ http://www.c-point.com/javascript_tutorial/special_characters.htm */ /* あくまでもtext/htmlとして配布される文書はHTMLなので script要素の内容モデルはCDATA ところで,このCDATAが終わるタイミングのため、ここでもエスケープしている */ document.write("<tr><th class=\"shishutsu\">支出合計<\/th><td class=\"shishutsu\">"+SHISHUTSU+" 円<\/td></tr>\n"); /* はっきり言うと,俺はこういう風に文書途中にscriptを入れるのが嫌いだ。仕様上は許されているが。 head要素の子要素として,関数等を定義して,DOMを使って文書を変更すべきだろう。 document.writeのタイミングによってはDOMに反映されないブラウザがあったと思うから。 script要素の内容として<や>が含まれるため,XHTML文書としては不適合。 外部ファイルにまとめてXHTMLにすることを進める。 */ </script> </table> </body> </html>

sanae110
質問者

お礼

遅くなりましたがご回答ありがとうございました。 書き忘れていたのですがjavascriptのみ外部ファイルで読み込ませて、 頭からずらーっと書き出した状態にしてしまったのですが その辺にも問題があったのでしょうか… (XHTMLを使う習慣もありませんでしたし…) もっと勉強したいとおもいます>< ありがとうございました。

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

普通に動くようにおもいますが・・・ なにか文法ミスでもしているのでは? <style> .shishutsu{ color:red } </style> <script> var SHISHUTSU=100; document.write("<table>\n"); document.write("<tr>\n"); document.write("<th class='shishutsu'>支出合計</th>\n"); document.write("<td class='shishutsu'>"+SHISHUTSU+" 円</td>\n"); document.write("</tr>\n"); document.write("</table>\n"); </script>

sanae110
質問者

お礼

遅くなりましたがご回答ありがとうございました。 ダブルクオテーションの問題では無かったようなので ひとまずの対策をして、別の原因を探すことにしました。 ありがとうございました。

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

関連するQ&A