JavaScript初心者の者です。
現在JavaScriptで様々な形の電卓を作ろうと考え、ある一定の文字数を入力後に、
table内に置いたボタンの配置がランダムに並び変わるようなものを制作しようと考えています。
電卓といいますか、作ろうとしてるものの他の要素はすべて完成しているのですが、
ただtableのボタンの配置をランダムに並び替える関数だけがどうしても作ることができません。
table内要素は3×3のボタンになっています。
ネットで調べてもtable内の要素をランダムに配置しなおす方法がどうしてもわからず、
何かヒントだけでもいただけないかと思い質問させていただきました。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
とりあえずやってみた
<script>
function shuffleTable()
{
var n1=document.getElementById("t1").getElementsByTagName("td");
var n2=new Array();
for(var i=0;i<n1.length;i++){
n2.push(n1[i].cloneNode(true));
};
for(var i=n2.length -1;i>1;i--){
var j=parseInt(Math.random()*(i+1));
var k=n2[i];n2[i]=n2[j];n2[j]=k;
}
for(var i=n1.length -1;i>=0;i--){
var p=n1[i].parentNode;
p.insertBefore(n2[i],n1[i]);
p.removeChild(n1[i+1]);
};
}
</script>
<table id="t1">
<tr>
<td><input type="button" value="1"></td>
<td><input type="button" value="2"></td>
<td><input type="button" value="3"></td>
</tr>
<tr>
<td><input type="button" value="4"></td>
<td><input type="button" value="5"></td>
<td><input type="button" value="6"></td>
</tr>
<tr>
<td><input type="button" value="7"></td>
<td><input type="button" value="8"></td>
<td><input type="button" value="9"></td>
</tr>
</table>
<input type="button" value="shuffule" onclick="shuffleTable()">
コードまでありがとうございます!
実行してみたところ、思った通りのものができました。
しかしながら中身をすべて理解しきれていないので、
1つ1つ理解したあとに実行してみようと思います。
ありがとうございました!
No.1
- 回答日時:
こんにちは。
どのようなボタンを配置しているのかわかりませんが、
ボタンはそのままで、表示させる文字(または画像)だけすり替えるという方法はいかがでしょうか。
普通のボタンであれば、
var buttonElement = document.getElementById("ボタンにつけたID"); //ボタンを取ってくる
buttonElement.value = "新たに表示させたい文字"; //表示する文字を設定
と書けばボタンに表示される文字を変えることができます。
buttonElementの取得方法はいろいろありますので、今のソースに合わせて変えてみてください。
なるほど。
値を新たに挿入するという考え方はありませんでした。
その方向でも検討して作ってみます!
ご親切にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- 専門店・ホームセンター ホームセンターで働きたいが、握力がないと厳しいですか? 8 2023/07/30 18:18
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- 数学 円周率について。 3 2023/01/26 15:10
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンが選択されたらテ...
-
文字数を数える際に空白、改行...
-
JavaScriptでテーブルのソート...
-
画面表示とともにtableの指定の...
-
Java Scriptで・・・
-
FC2掲示板での「性別の選択」を...
-
PHPで通信せずに入力データを照...
-
localStorageでのcheckbox制御
-
別ページからOnclickでテーブル...
-
Javascriptの電卓で最初の何も...
-
JavaScriptによる自動計算フォーム
-
ラジオボタン選択で「複数ラジ...
-
Javascriptで自動的に計算する...
-
チェックボックス付きのテーブ...
-
Response.Writeを使用して更新...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
【jQuery】input nameの文字列...
-
select内を書き換えることは出...
-
value内に変数を入れたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
localStorageでのcheckbox制御
-
複数のselect値で1つも選択され...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
文字数を数える際に空白、改行...
-
formで項目を連結したい
-
jQueryで合計を出したい
-
Formのシリアライズができない
-
画面表示とともにtableの指定の...
-
テーブル内のチェックボックス...
-
入力チェックの外部スクリプト...
-
ラジオボタンが選択されたらテ...
-
VBSでの自動ログイン
-
Javascriptで自動的に計算する...
-
jQuery テキストボックス読み取...
-
同一nameの input type="text"...
-
ボタンクリックでフォーカス移動
-
画面の2重起動をチェックする...
-
送信ボタン連打を抑止したいです
おすすめ情報