こんにちは。困っているプログラムの前置きですが、配列にone,two,three,four,fiveを入れて、ボタンを押したらそれらのどれか一つがなくなり、全部で五回ボタンを押すと配列が空になるプログラムを作っています。僕がまず考えた案は、配列をランダムでどれか一つを選んで消去して五回繰り返そうという物ですが、ランダムに選んだ配列の番号は一度決めたらページを更新するまで変わらないと気づき失敗でした。その対策としての案でボタンを押すとランダムで一個配列から消えて新しい次のボタンが生成され、それを五回繰り返すのですが、ボタン一つ一つに別々のランダム変数で配列を一個消すプログラムを書けば、ページを更新しなくてもランダムの結果がきちんと5回出るのですが、それではボタンの数が増えます。一回使ったボタンはthis.disabled = trueで押せなくしたらいいのですが、それでは不格好になり意図に合いません。
<body> <form action="#" id="but"> <input type="button" value="ランダムボタン" onclick="処理()"> <div id="二番目のボタン"></div> </form></body> <script> 色々処理~ </script>作っているプログラムの一部です。一番目のボタンを消去したいのですが、formのidであるbutを取得して書き換えると全てのボタンが消えてしまいます。なので最初のボタンだけ取得して消す方法を探しています。是非お力添えくださいますようお願いします。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> </head> <body> <table border="1"> <tr> <td><div id="zOne">1</div></td> <td><div id="zTwo">2</div></td> <td><div id="zThree">3</div></td> <td><div id="zFour">4</div></td> <td><div id="zFive">5</div></td> </tr> </table> <form action="#" id="but"> <input type="button" value="ランダム表示" onclick="choice()"> <div id="sample"></div> </form> <script> var liRandom = ['iOne','iTwo','iThree','iFour','iFive']; var r = Math.floor(Math.random() * liRandom.length); var choice = function(){ console.log(liRandom[r]); if(r === 0){ document.getElementById('zOne').textContent = ''; } if(r === 1){ document.getElementById('zTwo').textContent = ''; } if(r === 2){ document.getElementById('zThree').textContent = ''; } if(r === 3){ document.getElementById('zFour').textContent = ''; } if(r === 4){ document.getElementById('zFive').textContent = ''; } var div_element = document.createElement('div'); div_element.innerHTML ='<input type="button" value="新しいボタン">'; var parent_object = document.getElementById('sample'); parent_object.appendChild(div_element); } </script> <!--本当は配列31個ある予定なんです笑。イヤアアァァ!!!!--> </body> </html>
回答1件
あなたの回答
tips
プレビュー