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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

Q&A

解決済

2回答

870閲覧

aタグクリックする度にリンクとテキストを書き換えたいです。

iisaniisan

総合スコア75

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

0グッド

1クリップ

投稿2022/01/11 12:28

aタグクリックする度にリンクとテキストを書き換えたいです。

HTML

1<body> 2<div class="button"> 3 <a href="#profile" onclick="linkClick(this);"><p>プロフィール</p></a> 4 </div> 5<!-- jQueryの読み込み(CDN) --> 6 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 7 <!-- main.jsの読み込み --> 8 <script src="js/main.js"></script> 9</body>

JS

1"use strict"; 2function linkClick(aTag) { 3 aTag.innerHTML = "<p>コンセプト<" + "/p>"; 4 aTag.href = "#concept"; 5}

今このように書いており、1回クリックしたら切り替えるところまでは出来ました。
aタグのinnerHTMLとhrefの変更を合計4回行いたいです。
5回目に最初の<a href="#profile" onclick="linkClick(this);"><p>プロフィール</p></a>の状態に戻して
6回目から1~4回目と同じ順番で変更する、を繰り返していきたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

考え方として、切り替えたいテキストと切り替えたいURLをそれぞれ配列に用意します。
そして、クリックされる度にiに代入した数値をカウントアップしていき、それに連動した順番の値をテキストとURLに出力します。
そして、iの数値が配列の最後の順番になったらまた最初に戻る(iを0に戻す)、というのを繰り返します。

※リンクテキストは「プロフィール」「コンセプト」から推測したものです

js

1let linkText = ['<p>コンセプト</p>', '<p>ブログ</p>', '<p>問い合わせ</p>', '<p>プロフィール</p>']; 2let url = ['#concept', '#blog', '#contact', '#profile']; 3let i = 0; 4 5function linkClick(aTag) { 6 if (i >= linkText.length) { 7 i = 0; 8 } 9 aTag.innerHTML = linkText[i]; 10 aTag.href = url[i]; 11 i++; 12}

投稿2022/01/11 13:54

編集2022/01/12 04:56
lifull_shimaokk

総合スコア129

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

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

iisaniisan

2022/01/12 08:42

できました。ありがとうございます。
guest

0

根本的に違いすぎますが・・・。

html&js

1<!DOCTYPE html> 2<meta charset="utf-8"><html> 3<title></title> 4<style> 5</style> 6<body> 7<p><a href="#hoge">A</a> 8<p><a href="#fuga"></a> 9 10 11<script> 12 13const pt = [ 14 { href: "#hoge", idx: 0, text :['A', 'B', 'C', 'D', 'プロフィール']}, 15 { href: "#fuga", idx: 0, text :['あ', 'い', 'う', 'え','お', 'プロフィール']}, 16]; 17 18document.addEventListener('click', ({target: e}) => { 19 if ('A' === e.nodeName) { 20 let [a] = pt.filter (b=> e.getAttribute ('href') === b.href); 21 if(a) { 22 a.idx = (a.idx + 1) % a.text.length; 23 e.textContent = a.text[a.idx]; 24 } 25 } 26}); 27 28</script> 29

投稿2022/01/11 13:21

babu_babu_baboo

総合スコア616

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問