質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

button

HTMLで用いる<button>タグです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

523閲覧

html タグ内に変数を書き込めるようにしたい

puyu

総合スコア8

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

button

HTMLで用いる<button>タグです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2025/05/26 02:43

実現したいこと

htmlのbuttonタグに変数を入れたいと考えています。
変数をTESTとしたとき、

<div id='○○'> <button onclick="△△()"><img src="□□/TEST.png" border="0" style="width : 125px;height : 125px;"></button>

発生している問題・分からないこと

現状では変数を入れることは困難と思われ、このままだと上記の文章を3000個程記述する必要があり、管理が複雑になりすぎて困っています。
他に良い方法があれば、ご回答よろしくお願いいたします。

現在のシステム構成としては、
JavaScriptのdocument.getElementById('○○').innerHTMLを利用してhtmlのボタンを複数表示させています。
システム構成を簡単にしてソースコードに記述しておきます。(起動確認済み)

該当のソースコード

html

1<!--test.html--> 2<script type="text/javascript" src='./test.js'></script> 3 4<div id='JS1'></div> 5<div id='JS2'></div> 6 7<div id='name1'> 8<button onclick="TEST()"><img src="img1.png" border="0" style="width : 125px;height : 125px;"></button> 9</div>

JavaScript

1//test.js(htmlとjsは同じフォルダ内に置いてあります。) 2function TEST(){ 3//1つ目 4document.getElementById('JS1').innerHTML = 5'<div id=name2"><img src="img2.png" border="0" style="width : 125px;height : 125px;"></div>' 6 7//2つ目 8document.getElementById('JS2').innerHTML = 9'<div id=name3"><img src="img3.png" border="0" style="width : 125px;height : 125px;"></div>' 10 11}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

検索して思ったのは、htmlには変数を書き込むことが出来ず、jsでしか変数入力は出来ないのだと思います。
JavaScriptのdocument.getElementById('○○').innerHTMLもHTMLに書き込むだけで、コメント書きのようなもので、変数を打ち込むことはで出来ないと思いました。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

3

ベストアンサー

JavaScriptから見るとHTMLはただの文字列なので、文字列として操作すればいいでしょう。

いろいろ書きかたあると思いますけどたとえばこんな感じ。(動かしてないのでバグあるかも)

javascirpt

1function TEST(){ 2 let imageInfo = { 3 "JS1": { 4 "img":"img1.png", 5 "id": "name1" 6 } 7 "JS2": { 8 "img": "img2.png", 9 "id": "name2" 10 } 11 } 12 13 for(let elementId in imageInfo) { 14 let items = imageInfo[elementId] 15 document.getElementById(elementId).innerHTML = 16 `<div id="${items["id"]}"><img src="${items["img"]}" border="0" style="width : 125px;height : 125px;"></div>` 17 } 18}

投稿2025/05/26 03:18

編集2025/05/26 04:19
TakaiY

総合スコア14466

utm.😄を押しています
ten, glyzinieh👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

puyu

2025/05/26 04:50

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。 以下のソースコードで正常に動作しました! function TEST(){ let imageInfo = { "JS1": { "img":"img1.png", "id": "name1" }, "JS2": { "img": "img2.png", "id": "name2" } } for(let elementId in imageInfo) { let items = imageInfo[elementId] document.getElementById(elementId).innerHTML = `<div id="${items["id"]}"><img src="${items["img"]}" border="0" style="width : 125px;height : 125px;"></div>` } } 上記のコードを参考にしてオリジナルでやりたかったことも作成しました。 以下に記述します。 function TEST(){ for(let a=2;a<=3;a++){ b=a-1 items = { "num":"JS"+b, "img":"img"+a+".png", "id": "name"+a } document.getElementById(items["num"]).innerHTML = `<div id=${items["id"]}"><img src="${items["img"]}" border="0" style="width : 125px;height : 125px;"></div>` } } ${items["○○"]}という存在を知らなかったので、とても勉強になりました。 ありがとうございました。
TakaiY

2025/05/26 05:00

これはテンプレートリテラルというもので、変数の値を埋め込んだ文字列を作ることができます。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals itemsのところで使っているように '<div id="' + items["id"] + '><img...' ~ みたいに+で連結して書いても同じです。 埋め込む変数が多いと記述が煩雑になるので、テンプレートリテラルの方を好んで使っています。
puyu

2025/05/26 05:06

確かにそうですね。 これからはなるべくテンプレートリテラルで記述するように頑張りたいと思います!
guest

0

ディレクトリにあるファイルを全て取得するプログラムをかけた方が役に立ちそうですね

投稿2025/05/26 10:18

utm.

総合スコア860

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2025/05/26 10:30

そうですね。 「実際にやりたいことは何なのか」がわかるとより良い解決方法が出てきますよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問