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

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

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

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

Q&A

解決済

2回答

2517閲覧

jqueryでクリックで文字の変更→もとに戻すの記述方法

yukina00235

総合スコア62

jQuery

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

0グッド

0クリップ

投稿2021/05/08 01:37

jqueryでクリックした際に文字を変更させ、再度クリックすると元に定義されていた文字に戻したいのですが、何とかできたのですが、何か違和感があります。
もっと効率的な書き方がありそうなのですが、どのようにすると良いでしょうか?

というのも、現在の定義だとHTML側のリストという名称を変更した場合、jquery側も変更が必要になってしまうので、なんと言いますか、toggle的なもので、変更前、変更後を切り替えるような方法などありましたらアドバイスをお願いいたします。

HTML

1 <ul> 2 <li>リスト</li> 3 <li>リスト</li> 4 </ul>

jquery

1 $(function () { 2 $("li").click(function () { 3 var change = "変更しました!"; 4 if ($(this).text() === "リスト") { 5 $(this).text(change); 6 } else { 7 $(this).text("リスト"); 8 } 9 }); 10 });

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

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

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

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

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

m.ts10806

2021/05/08 02:12

要件通りできてればそれが正解なので、 見直すなら観点を明確にするところからかと思います。 1つのゴールに向かうためのルートは無数にあります。
guest

回答2

0

jQuery的にはdata-*属性を使うことが多いかな、と思いました。
jQuery.data() | jQuery API Documentation


その他、CSSの疑似要素で表現したり、display: noneなどで不可視にした子要素を置いておいてCSSで表示を入れ替えたり、なんならsetterを使ってデータバインディングをしたり、など、いろいろな方法があると思います。

投稿2021/05/08 07:10

Lhankor_Mhy

総合スコア36158

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

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

0

ベストアンサー

変更前のli要素の文字列を、外部変数に保持しておき、
クリック都度の文字列と、その変更前の文字列を格納した変数を比較して、
処理を分けるとよいかと。

投稿2021/05/08 04:17

miyabi_takatsuk

総合スコア9528

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

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

yukina00235

2021/05/08 04:51

有難うございます。 li自体の内容をjqueryの変数に格納して表示する場合、HTML側にはjqueryとして表示を行うのですよね? そうなるとHTML側には実態が無い<li>の内容になってしまわないでしょうか? 何か勘違いがありそうなのですが、もしよろしければもう少し詳しく教えて頂けないでしょうか?
miyabi_takatsuk

2021/05/08 04:54

> HTML側には実態が無い<li>の内容になってしまわないでしょうか? そんな要件、質問には一切書かれていませんので、 知りません。 元のHTMLが静的に存在しているものとしての回答です。 最初にその静的なテキストを変数に格納して、クリックした毎に比較する、という考え方です。 記載していない要件があるならば、質問本文にしっかり記載してください。
yukina00235

2021/05/08 06:49

有難うございます。 自分でも把握できていないので、質問がおかしいのだと思います。 変数を使って色々と試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問