

長いhtml文を、引用符「”」とテキスト結合の「+」記号で表す方法がよくわかりません。
下記「//情報ウィンドウに表示するHTML文」において、引用符「”」で括り、
テキスト結合の「+」記号で連結する場合、どこからどこまでをまとめるかの選択基準はあるものでしょうか。
また
下記「//情報ウィンドウに表示するHTML文」において別の括りでの結合の仕方はあるものでしょうか。
//情報ウィンドウに表示するHTML文
var html = "<table border=1 cellspacing=1 cellpadding=3
bordercolor=#b98bba style='font-size:15px;'" +" width=195px><tr><td
bordercolor=#f2eaf2 width=90px><img src='"+ imgurl +"' width='90'" +"
height='67' border='0'></td><td bordercolor=#f2eaf2><a href='"+ hpurl
+"' target=_blank>" +"<b>"+ name +"</b></a><br /><br /><a
href='javascript:zoomInOut(+3);'>" +"<img src='./zoom-plus-mini.png'
width='18' height='18' alt='plus' title='3倍zoom-in'" +" border='0'
align='top' /></a><a href='javascript:zoomInOut(-3);'>" +"<img>src='./zoom-minus-mini.png' width='18' height='18' alt='minus'
title='3倍zoom-out'" +" border='0' align='top' /></a></td></tr></table>";
No.2ベストアンサー
- 回答日時:
連結の考え方ですが、「固定」なのか「変数」なのかです。
例えば
<table border="1">
<tr>
<td><img src="hogehoge" /></td>
<td><a href="fugafuga">URL</a></td>
</tr>
</table>
として、「hogehoge」や「fugafuga」部分が変わるとするなら、
html = '<table border="1"><tr><td><img src="' + hogehoge + '" /></td><td><a href="' + fugafuga + '">URL</a></td></tr></table>';
となります。
「<table」~「src="」までは固定ですから、そのままひとつで括り、変数部分の前後を連結します。
あとはそれの繰り返しです。
Kaneyan-Rさん、ご回答ありがとうございます。
よく分かりました。
Kaneyan-Rさん達がいらっしゃることは、おっとりがたなで、見ず知らずのプログラムの大海に漕ぎ出て、遭難しかけている私にとり、灯台の明るい道しるべの光のように思えます。
こんごとも宜しくお願い致します。
(甘えてばかりでなく、私も、灯台の明るい道しるべの光になれるよう日々精進していく所存であります。)
No.4
- 回答日時:
ずっと「HTML」と言われていますが、HTMLではなく「JavaScript」の話です。
>ところで、「改行前に「\(エスケープ)」を置くのがポイント。これで改行を無視します。」とありますが、上記「var outhtml =」に続くhtmlの場合は、エディタ上、改行せず、長い一つの文とする決まりがあるのでしょうか。
HTMLだからではなく、一つのつながった「文字列」だからです。
a = "あいうえお";
a = 'あいうえお';
※↑どちらも同じ意味。
とすると、aの値は『「あいうえお」と言う文字列』になります。
ダブルクォートやシングルクォートで囲まれた部分が文字列となるので、改行(改行文字)が入ってしまうと、そこで「文字が切れている=終端のクォートが無い」と言う事になり、エラーになったり、意図しない結果になります。
また、
a = "あい" + "うえお";
とすると、aの値は「あいうえお」
b = "あい";
a = b + "うえお";
としても、aの値は「あいうえお」
になります。
もし、「改行を含んだ文字列」を変数として定義するのなら、改行を表す特殊文字「\n」を入れます。
a = "あい\nうえお";
とすると、変数aの値は
=================
あい
うえお
================
となります。
・「bordercolor="#b98bba"」と「style="font-size:15px\」間のように、エディタ上で改行しても問題は無いのでしょうか。エディタ上で改行すると問題が生じる場合はどういうときでしょうか。
これも前述の理由からエラーになります。
もし改行を入れるなら、
【改行エスケープ】
=============================
var html = '<table border="1" cellspacing="1" cellpadding="3" bordercolor="#b98bba" \
style="font-size:15px\;" width="195px">\
・
・
・
=============================
とするか、
【文字列連結】
=============================
var html = '<table border="1" cellspacing="1" cellpadding="3" bordercolor="#b98bba" ' +
'style="font-size:15px\;" width="195px">' +
・
・
・
=============================
としたり、
【変数内文字列追記】
=============================
var html = '';
html += '<table border="1" cellspacing="1" cellpadding="3" bordercolor="#b98bba" ';
html += 'style="font-size:15px\;" width="195px">';
html +=
・
・
・
=============================
としたりも出来ますが、途中で切れている事になるので、どんな内容かが非常に分かりにくくなります。
No.3
- 回答日時:
HTMLというよりJavaScriptの話ですね。
元ソース書いた人の何らかのポリシーによるものと思われます。
変数のために利用している + 以外の部分で改行してみると何となく分かるような。
No.1
- 回答日時:
ごちゃごちゃして可読性が悪いので、「連結」するのではなく「置換」すると見やすいです。
==================================================
var outhtml = '<table border="1" cellspacing="1" cellpadding="3" bordercolor="#b98bba" style="font-size:15px\;" width="195px">\
<tr>\
<td bordercolor="#f2eaf2" width="90px"><img src=".IMGURL" width="90" height="67" border="0"></td>\
<td bordercolor="#f2eaf2">\
<a href=".HPURL" target="_blank"><b>.NAME </b></a><br /><br />\
<a href="javascript:zoomInOut(+3)\;"><img src="./zoom-plus-mini.png" width="18" height="18" alt="plus" title="3倍zoom-in" border="0" align="top" /></a>\
<a href="javascript:zoomInOut(-3)\;"><img src="./zoom-minus-mini.png" width="18" height="18" alt="minus" title="3倍zoom-out" border="0" align="top"/></a>\
</td>\
</tr></table>';
var tmp = outhtml;
tmp = tmp.replace('.IMGURL',imgurl);
tmp = tmp.replace('.HPURL',hpurl);
tmp = tmp.replace('.NAME',name);
==================================================
置き換える変数部分を特定の形式(↑の場合は「.」+「大文字」)にしておいて、HTMLの表記通りに書きます。
そして、改行前に「\(エスケープ)」を置くのがポイント。これで改行を無視します。
あと、スタイル指定やスクリプトの「;」も一応エスケープしておいた方が良いですね。
最後にreplace使って、指定の文字を変数に置き換えれば終わり。
上の例だと、置き換えるのが全部別の変数だったのでそのまま指定しましたが、同じ変数が何箇所も出てくるなら、正規表現使って対象を「全置換」したほうが良いですね。
※直接指定だと、最初に出てきた対象しか置換しないので。
あと、border等のサイズ指定は、全部CSSに持っていった方が良いですよ。
この回答への補足
Kaneyan-Rさん、ありがとうございます。
よく理解できました。
・ところで、「改行前に「\(エスケープ)」を置くのがポイント。これで改行を無視します。」とありますが、上記「var outhtml =」に続くhtmlの場合は、エディタ上、改行せず、長い一つの文とする決まりがあるのでしょうか。
・また、
「'<table border="1" cellspacing="1" cellpadding="3" bordercolor="#b98bba" style="font-size:15px\;" width="195px">\」
において、「bordercolor="#b98bba"」と「style="font-size:15px\」間のように、エディタ上で改行しても問題は無いのでしょうか。エディタ上で改行すると問題が生じる場合はどういうときでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
このQ&Aを見た人はこんなQ&Aも見ています
-
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
-
テーブルの任意の列を非表示にしたい
HTML・CSS
-
function の return 値を表示したいのですが・・
JavaScript
-
-
4
htmlでテーブル内にテキストボックスを作りたいのですが・・・
HTML・CSS
-
5
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
6
入庫と出庫
英語
-
7
HTMLボタンの文字色を変えられますか
HTML・CSS
-
8
formで項目を連結したい
JavaScript
-
9
ソースコードの1行が長いときの折り返し
PHP
-
10
select値をhiddenのvalueに渡したい
HTML・CSS
-
11
同じ幅指定のつもりなのに、ブラウザによって違ってしまう現象
HTML・CSS
-
12
PHPからWindowsログインユーザー名取得
PHP
-
13
はじめまして!
Oracle
-
14
trとtrの間
HTML・CSS
-
15
python エラー
その他(プログラミング・Web制作)
-
16
[Java] Edgeでのアドレスバー非表示について
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
<img>タグにCSSのclass設定可能?
-
特殊文字の検索方法
-
表とリスト(ulとtable)の違い...
-
テーブルのセルに画像をピッタ...
-
スタイルシートで表を作成
-
firefox:テーブルの背景色を半...
-
DreamweaverMX2004でのテーブル...
-
テーブルが自動改行される
-
bodyで一括指定したものの部分...
-
テーブルの背景を透過する方法
-
テーブルの1列目だけ背景色をつ...
-
テーブルを使ったレイアウトで
-
テーブルのヘッダの表示を固定...
-
tableでレイアウトが崩れる場合
-
FOMA対応サイトでの背景指定の...
-
テーブルの中身がないセルについて
-
CSSで文字を一番下の中央に表示...
-
テーブルタグの中にdivを含めて...
-
dreamweaver☆背景画像の繰り返し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
html でのテキスト結合について
-
テーブルの一部分のセルだけに...
-
同じクラス名はつけないほうが...
-
cssで、テーブルのtdの中の文字...
-
htmlのボタンを左寄席にしたい
-
td要素内のdiv要素をセンタリン...
-
XHTMLに関する質問 順序が逆に...
-
Tableタグ内のspan styleが適応...
-
divで囲んだ文字が消える
-
<img>タグにCSSのclass設定可能?
-
vbscriptで時計を作りたい
-
Firefoxを使ってるのですがズー...
-
tableがbodyにはみ出る。。
-
Visual Studio で CLR 開発でデ...
-
Dreamweaver デザインビューの...
-
リストの記号を括弧付きの文字...
-
表とリスト(ulとtable)の違い...
-
Tableタグで作成した表の縮小
-
デーブルが延びる
おすすめ情報