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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

HTML

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

Q&A

解決済

2回答

8352閲覧

htmlで変数を使ってリンクを貼るには

Emizo1

総合スコア3

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2021/06/11 07:33

編集2021/06/11 08:51

同じページの中で同じURLを2か所以上で使いたいのでCSSでURLを変数として定義し、htmlでその変数を使ってリンクを貼ろうとしましたが上手く行きません。
JS:
var url27 = 'https://XXXXX.html';
とし、
HTML:

<div class="mainbox"> <h2>直近のお知らせ</h2> <div class="submenu"> <h3>リリース(2021.X.X)</h3> <li>リリースの概要 <a href=url27></a></li> </div> </div> <h2>履歴</h2> <div class="memobox_title"> <ul> <h3>リリース(2021.X.X)</h3> <li>リリースの概要 <a href=url27></a></li> </ul> </div>

というのを2か所以上で表示したいのですが、HTML側でurlXXを上手く取得できず、ファイルが見つかりませんというエラーになります。
Webの左下のURLの表記もhttps://XXXXX.htmlではなく、url27と表記されています。

簡単にできると思っていたのですが、innerHTML など色々試しても解決できません。
分かる方がいましたら、よろしくお願いします。

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

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

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

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

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

m.ts10806

2021/06/11 07:47

Javascriptではないのでしょうか
Emizo1

2021/06/11 08:23

ご指摘の通りです。JavaScriptのところを間違えてCSSと記載してしまいました。訂正します。
m.ts10806

2021/06/11 08:30

では、「うまくいかないコード」を提示してください。コードはマークダウンで提示してくださいね。 あと起きている現象詳細も。
Emizo1

2021/06/11 08:52

分かる範囲で記載を追加しました。よろしくお願いします。
guest

回答2

0

質問文の様にタグの中にjavascriptの変数を埋め込むようなことはできません。
ちゃんと手法さえ知っていれば簡単にできます。

hrefのURLを変更するには、setAttributeメソッドを使います。

ただ、変更したい対象のA要素を何らかの手段で判別する必要があります。
ここでは変更対象のa要素に特定のクラスを付与し、querySelectorAllで抽出しています。

html

1<p>リンクのURLを変えたいaタグには <code>class="change-url"</code>をつけています。</p> 2<a href="#" class="change-url">このリンクのURLは変わります。</a><br> 3 4<a href="#" class="no-change-url">このリンクのURLは変わりません。</a><br> 5 6<a href="#" class="change-url">このリンクのURLも変わります。</a>

js

1var urlXX = "https://teratail.com"; 2// querySelectorAllでURLを変えたいa要素を取得し、それぞれにsetAttributeでhrefを変更する。 3document.querySelectorAll('a.change-url') 4 .forEach( e => { 5 e.setAttribute("href", urlXX); 6});

codepenでのデモ

投稿2021/06/11 08:37

hope_mucci

総合スコア4447

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

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

0

ベストアンサー

こんな方法もあるよ

JavaScript でページ遷移する関数つくって

javascript

1function hoge() { 2 location.href = 'https://XXXXX.html'; 3}

リンクはこんなかんじで

html

1<a href="javascript:hoge()">hoge</a>

投稿2021/06/11 11:23

takasima20

総合スコア7458

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

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

Emizo1

2021/06/15 07:49

ご連絡が遅くなりましたが、回答ありがとうございます。簡単な記述で解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問