Javascript 如何通过单击应用程序中的按钮生成新的训练?

Javascript 如何通过单击应用程序中的按钮生成新的训练?,javascript,twitter-bootstrap,frontend,project,Javascript,Twitter Bootstrap,Frontend,Project,我试图弄清楚如何让我的应用程序在每次单击“生成新训练”按钮时生成一个新的随机训练。我想不出来 我意识到我的代码乱七八糟,但这是我迄今为止构建的,并将在某个时候进行重构 我知道这与多姆有关;因此,可能需要一个“addEventListener”列表以供单击,但我无法让我的训练自动生成 它将在同一页面上一个接一个地添加新的训练列表,而不是刷新并生成一个新的训练 提前谢谢 //腿部运动变化 let legs=[‘深蹲’、‘压腿’、‘后蹲’、‘伸腿’、‘弓步’、‘泽尔蹲’] 设rLegs=legs[M

我试图弄清楚如何让我的应用程序在每次单击“生成新训练”按钮时生成一个新的随机训练。我想不出来

我意识到我的代码乱七八糟,但这是我迄今为止构建的,并将在某个时候进行重构

我知道这与多姆有关;因此,可能需要一个“addEventListener”列表以供单击,但我无法让我的训练自动生成

它将在同一页面上一个接一个地添加新的训练列表,而不是刷新并生成一个新的训练

提前谢谢

//腿部运动变化
let legs=[‘深蹲’、‘压腿’、‘后蹲’、‘伸腿’、‘弓步’、‘泽尔蹲’]
设rLegs=legs[Math.floor(Math.random()*legs.length)];
//水平压力机
设hPress=[
“哑铃压力机”,
"机械压力机",,
“杠铃平压”,
“哑铃压力机”,
“胸部套头机”,
“Pec甲板”,
“俯卧撑”,
“加权下降”,
]
设rhPress=hppress[Math.floor(Math.random()*hppress.length)];
//水平拉力
设hPull=[
“杠铃街”,
“Tbar Row”,
“邓贝尔街”,
“行机器”,
“体重倒排”,
“TRX行”
]
设rhPull=hPull[Math.floor(Math.random()*hPull.length)];
//立式压力机
设vPress=[
‘压肩机’,
“坐姿肩部按压”,
"推压",,
“立式顶压机”,
“辅助倒立俯卧撑”,
]
设rvPress=vPress[Math.floor(Math.random()*vPress.length)];
//垂直拉力
设vPull=[
“横向下拉”,
“Chinups”,
"上拉",,
“坐式垂直拉力机”,
]
设rvPull=vPull[Math.floor(Math.random()*vPull.length)];
//铰链/腘绳肌变化
让铰链=[
“超扩展”,
"吊运",,
“壶铃摆动”,
“腿筋卷曲”,
]
让rHinge=铰链[Math.floor(Math.random()*vPull.length)];
//携带/抓握
让我们进行=[
"农民走",,
“杠铃撑得住”,
“哑铃保持”,
"板夹",,
“夹持机”
]
让rCarry=carry[Math.floor(Math.random()*carry.length)];
//二头肌隔离
让二头肌=[
“哑铃卷发”,
“EZ杆卷曲”,
“电缆卷曲”,
“杠铃卷曲”,
“倾斜哑铃卷发”
]
设rBiceps=biceps[Math.floor(Math.random()*biceps.length)];
//三头肌隔离
让三头肌=[
“碎骨机”,
“三头肌回扣”,
“三头肌下陷”,
“三头肌机”,
“三头肌延长线”
]
设rTriceps=triceps[Math.floor(Math.random()*triceps.length)];
//功能性心脏病
有氧运动=[
“冲刺”,
"战绳",,
"划艇机",,
"爆胎",,
“雪橇拖拽”,
“雪橇拉”
]
让rCardio=cardio[Math.floor(Math.random()*cardio.length)];
常数myWorkout1=[
{'Exercise':'${rLegs}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rhPress}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rhPull}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rvPress}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rvPull}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rHinge}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rCarry}','set':'3','Reps':'AMRAP','Rest':'2分钟',
{'Exercise':'${rBiceps}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rTriceps}','set':'3','Reps':'10','Rest':'2分钟',
{'Exercise':'${rCardio}','set':'10','set':'8','Reps':'30秒AFAP','Rest':'1分钟'}
]
构建表(myWorkout1)
函数构建表(数据){
const table=document.getElementById('myTable');
对于(变量i=0;i

全身训练生成器|全身训练生成器
全身训练生成器
运动
设置
代表
休息
生成新的训练

如果希望显示新的训练列表而不是附加到现有列表中,请在
buildTable()中进行以下更改。
。获取表元素后,在分配新内容之前,清除其中的任何内容

table.innerHTML = ""
要生成新的训练,请在按钮上附加一个
onClick
处理程序

<button class="btn" onClick="buildTable()">Generate New Workout</button>
生成新训练

此外,您还需要重构生成随机训练的方式。每次用户单击按钮时都应生成一个新的随机训练(即新的随机训练索引),因此您需要将该功能移动到
buildTable()
调用的函数中,而不是当前的实现——它只生成一次随机索引,并使用该索引确定要添加到表中的练习。

如果希望显示新的训练列表而不是附加到现有列表,请在
buildTable()
中进行以下更改。获取表元素后,在分配新内容之前,清除其中的任何内容

table.innerHTML = ""
要生成新的训练,请在按钮上附加一个
onClick
处理程序

<button class="btn" onClick="buildTable()">Generate New Workout</button>
生成新训练
此外,您还需要重构生成随机训练的方式。每次用户c