
題目の通りの症状です。知識不足でどこを直したらいいのかどうもよくわかりません。どなたかご教示をお願いします。
症状としては、クリックすると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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
テーブルの行数を可変長にした...
-
javascript でテーブル操作
-
セレクトボックスでそれ以降の...
-
【jQuery】tableループ内のIDの...
-
チェックボックスのオン⇔オフに...
-
return trueとreturn falseの用...
-
プルダウンで選択すると、DBの...
-
hiddenのvalueの値を変えたい
-
JavaScriptで特定のtdタグにcla...
-
onchangeイベントを強制的に発...
-
特定<table>内の<td>の色を変える
-
ハイパーリンクを別ウインドウ...
-
CSVファイルを読みこみ、プルダ...
-
<input>の選択肢をプルダウンメ...
-
【jQuery】input nameの文字列...
-
VBSでブラウザ上のテキストボッ...
-
jQueryのプラグイン「Tablesort...
-
ボタンかリンクをクリックする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<JavaScript>tableタグを入力不...
-
selectのonChangeが動作しません
-
画面表示とともに、テーブルの...
-
新しいウィンドをリンク指定し...
-
jquery にて、アラートダイアロ...
-
指定のテキストをクリックする...
-
テーブルの行数を可変長にした...
-
html内>テーブル内に複数のjav...
-
写真の下に説明文
-
javascriptのカルーセル
-
a9のサイトの仕組み
-
Javascriptでテーブルタグの座...
-
クリックごとに文字色が交互に...
-
javascript でテーブル操作
-
【jQuery】tableループ内のIDの...
-
javascriptでクリックするごと...
-
テキストエリアに入力した改行...
-
appendChildとinnerHTMLを短く
-
tbody要素のinnerHTMLが書き換...
-
jquery.csv2table.jsのテーブル
おすすめ情報