前提・実現したいこと
MacBookでsublime text を使用して4択の簡単なクイズを製作している途中です。言語はJavaScriptで途中リファクタリングをしようと試みたのですが上手くいきませんでした。見返してもどこで上手くいかなくなっているのかが分からない状態です。リファクタリングの箇所はソースコードの「app.js」タブに「// 」の形で書いてあります。よろしくお願いします。また質問歴が浅いので質問の際もっとこういった情報を載せたほうがいい等の助言もありましたらそちらのほうも教えて頂けると助かります。
該当のソースコード
(html.indexタブ)
<!doctype html> <html class="no-js" lang=""> <head> <meta charset="utf-8"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:title" content=""> <meta property="og:type" content=""> <meta property="og:url" content=""> <meta property="og:image" content=""> <link rel="manifest" href="site.webmanifest"> <link rel="apple-touch-icon" href="icon.png"> <!-- Place favicon.ico in the root directory --> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"> <meta name="theme-color" content="#fafafa"> </head> <body> <div class="container"><script src="app.js"></script> </body> </html><div id="js-question" class="mt-3 alert alert-primary" role="alert"> A simple primary alert—check it out! </div> <div class="d-flex justify-content-center"> <button type="button" class="btn btn-primary">Primary</button> <button type="button" class="ml-1 btn btn-primary">Primary</button> <button type="button" class="ml-1 btn btn-primary">Primary</button> <button type="button" class="ml-1 btn btn-primary">Primary</button> </div> </div>
(app.jsタグ)
const question='この中で一番美しいのは誰でしょう?';
const answers=[
'シンデレラ',
'白雪姫',
'俺',
'ウーパールーパー'
];
const correct='ウーパールーパー';
// ????????????
// console.log();
document.getElementById('js-question').textContent=question;
const $btn =document.getElementsByTagName('button');
//ここの下4行をリファクタリングしたい
// $btn[0].textContent=answers[0];
// $btn[1].textContent=answers[1];
//$btn[2].textContent=answers[2];
//$btn[3].textContent=answers[3];
// 上の4行と同じコードを下にリファクタリング
let btnindex=0;
let btnlenght= $btn.lenght;
// 上の$btn.lenghtが4になれば機能するが...
while(btnindex<btnlenght){
$btn[btnindex].textContent=answers[btnindex];
btnindex ++;
}
//ここから先は質問に関係ないので省略
const clickmove = (e) =>{
if(correct === e.target.textContent){
window.alert('正解');
} else{
window.alert('不正解');
}
// quizindex++;
// if(quizindex<quizlenght){
// }else{
// window.alert('終了');
// }
};
回答1件
あなたの回答
tips
プレビュー