前提
クリックすると英語と日本語が交互に表示させるようにしたいです。
実現したいこと
toggle buttonを使って違う要素のテキストを変換させたいです。
発生している問題・エラーメッセージ
一回クリックすると日本語に変わりその後はクリックしても日本語のままです。
該当のソースコード
html
1 <div class="subtitle-parent col-sm-12 col-md-12 "> 2 <div class="subtitle"> 3 <div class="english"> 4 <p>This is English</p> 5 </div> 6 </div> 7 <div class="side-gadget"> 8 <!-- TOGGLE BUTTON --> 9 <div class="toggle-switch"> 10 <input type="checkbox" id="toggle" class="toggle-input"> 11 <label for="toggle" class="toggle-label"></label> 12 </div> 13 14 <div class="gear"> 15 <i class="fa-solid fa-gear"></i> 16 17 </div> 18 </div> 19 </div> 20
css
1/* 下 */ 2.subtitle-parent { 3 background-color: #fff; 4 display: flex; 5 justify-content: space-between; 6} 7 8 9 10 11 12 13 14 15 16 17 18 19 20/* TOGGLE BUTTON */ 21 22/* ① ボタンの背景は Ckeckboxの<label> */ 23.toggle-label { 24 width: 60px; 25 height: 30px; 26 background: #ccc; 27 position: relative; 28 display: inline-flex; 29 border-radius: 46px; 30 transition: 0.4s; 31 box-sizing: border-box; 32} 33 34input[type='checkbox']:checked+label { 35 background-color: #4BD865; 36} 37 38/* ②Toggle Switch の左右に動く 「 ○ 」 */ 39.toggle-label::after { 40 41 /* // ○ のスタイル */ 42 content: ''; 43 position: absolute; 44 width: 30px; 45 height: 30px; 46 border-radius: 100%; 47 left: 0; 48 top: 0; 49 z-index: 2; 50 background: #fff; 51 box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); 52 transition: 0.4s; 53 cursor: pointer; 54} 55 56input[type='checkbox']:checked+label:after { 57 left: 30px; 58} 59 60input { 61 display: none; 62}
js
1// TOGGLE BUTTON 2 3$('#toggle').click(function() { 4 5if($('.english').text = 'This is English') { 6 $('.english').text('この文は日本語です'); 7 8} else { 9 $('.english').text('This is English'); 10 11} 12 13});
試したこと
js
1 var text = $('.english').text(); 2
を使ってみたりしましたが、これは意味なかったです...
int32_t様の解説が理解できているか不安です
$('.english').text('〜') だと赤丸2つも含まれてしまうということでしょうか?
if($('.english').text = 'This is English') {
は全く意味不明の実装なので論外として(プロパティとメソッド、代入と演算子の違いが理解できてない)
>を使ってみたりしましたが、これは意味なかったです...
その後どう使ったのでしょうか。
代入しただけでは何も起きないのは当然と思うのですが。
質問編集してください。
$('.english').text() ←これで何が取得できたかデバッグで確認してみましたか?
デバッグで確認することを覚えれば質問する前に解決できることも増えてくると思うのですが。
コメントありがとうございます。
デバッグで「この文は日本語です」と出ました。大変恥ずかしながら、デバッグで確認する考え方を心得ていませんでした。本当に基礎ができていないのでご教示ありがとうございます。
回答2件
あなたの回答
tips
プレビュー