題目の通りの症状です。知識不足でどこを直したらいいのかどうもよくわかりません。どなたかご教示をお願いします。
症状としては、クリックするとtdが消えて字だけが表示されてしまいます。字をクリックすると字が順繰りに変わる点は機能していますが、どうにかしてtdが消えずにその中に字を表示したいのですが。どうぞよろしくお願いします。
*///////////
<table id="mondaiBox">
<tr><td id="mondai">a</td></tr>
</table>
<script>
var n=1;
var flag = [];
var mondai = ['a','i','u','e','o','ka','ki','ku','ke','ko','sa','shi','su','se','so'];
function changeChr() {
var strMondai='';
for(var i=0;i<n;i++){
do x=Math.floor(Math.random()*mondai.length); while(flag[x])
flag[x]=true;
strMondai+=mondai[x];
}
document.getElementById("mondaiBox").innerHTML=strMondai;
}
var strMondai = document.getElementById("mondaiBox");
mondaiBox.addEventListener("click", changeChr, false);
</script>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
一周したら終了なのか繰り返すのか不明なので、ひとまず繰り返しと考えるなら…
(なので、再シャッフルの際に連続する可能性があります)
以下のような感じではいかが?
const mondai = ['a','i','u','e','o','ka','ki','ku','ke','ko','sa','shi','su','se','so'];
const a = [];
document.getElementById('mondai').addEventListener('click', e => {
if(!a.length) {
for(let i = 0; i < mondai.length; i++) a[i] = i;
for(let i = a.length - 1; i > -1; i--){
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
}
e.target.textContent = mondai[a.pop()];
});
いやー、すごいですね。お手のもんなんですね。
おかげさまで、思いの通り実現できましたました。
あれこれ無駄に試したり悩んだことがすっかり解消です。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
画面表示とともに、テーブルの...
-
javascriptで文字を拡大・縮小...
-
動的なcheckboxのcheckedについて
-
指定のテキストをクリックする...
-
JQueryでテーブルの行を追加し...
-
クリックで指定のテーブルの背...
-
テキストエリアに入力した改行...
-
selectのonChangeが動作しません
-
javascriptでhiddenに二次元配...
-
プルダウン 項目が多いので先頭...
-
value内に変数を入れたい
-
Selectボックスの幅を自動で広...
-
onClickとsubmitの処理順序
-
onchangeイベントを強制的に発...
-
return trueとreturn falseの用...
-
jQuery セレクトボックスで選択...
-
javascriptでASPにデータを渡す
-
【jQuery】input nameの文字列...
-
slickのレスポンシブ > center...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
画面表示とともに、テーブルの...
-
javascriptで<table>背景色の取得
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
JQueryでテーブルの行を追加し...
-
javascriptで画像をテーブルに...
-
クリックごとに文字色が交互に...
-
カレンダーに印を付けたい
-
任意に文字数指定のできる原稿...
-
idの振り直しについて
-
tbody要素のinnerHTMLが書き換...
-
複数画像のロールオーバー
-
指定のテキストをクリックする...
-
マウスが重なったら画像の上に...
-
jQueryでの親の親の隣の子供の...
-
JavaScript 保守性の高めたい 2
-
Javascriptでの開閉リストの質問
おすすめ情報