javascript 如何使用事件对象、事件侦听器和子元素的组合来创建用户从提示符中选择的按钮数量

2ledvvac  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(99)

我尝试使用事件对象、事件侦听器和子元素的组合来创建用户从列表中选择的按钮数量。
下面的按钮和选项的完整代码

<div id=buttons>
        
How many buttons would you like?

<label>1 <input name=numberButtons type=radio value=1></label>
<label>2 <input name=numberButtons type=radio value=2></label>
<label>3 <input name=numberButtons type=radio value=3></label>
<label>4 <input name=numberButtons type=radio value=4></label>
<label>5 <input name=numberButtons type=radio value=5></label>
<label>6 <input name=numberButtons type=radio value=6></label>
<label>7 <input name=numberButtons type=radio value=7></label>
<label>8 <input name=numberButtons type=radio value=8></label>
    
</div>
     
<span id=done>Done</span>

id=done是单击以创建所述按钮的按钮
我试着创建一个函数,但它什么也没做。

jogvjijk

jogvjijk1#

您可以使用:checked伪类来获取所选的单选输入,然后使用循环来创建按钮(使用document.createElement)并将它们附加到容器元素。

const buttonsContainer = document.querySelector('#buttonsContainer');
document.querySelector('#done').addEventListener('click', function(e) {
  const numButtons = +document.querySelector('input[name=numberButtons]:checked')?.value || 0;
  buttonsContainer.replaceChildren();
  for (let i = 1; i <= numButtons; i++)
    buttonsContainer.append(Object.assign(document.createElement('button'), 
      { textContent : 'Button ' + i }));
});
#buttonsContainer { margin-top: 10px; }
<div id=buttons>
  How many buttons would you like?
  <label>1 <input name=numberButtons type=radio value=1></label>
  <label>2 <input name=numberButtons type=radio value=2></label>
  <label>3 <input name=numberButtons type=radio value=3></label>
  <label>4 <input name=numberButtons type=radio value=4></label>
  <label>5 <input name=numberButtons type=radio value=5></label>
  <label>6 <input name=numberButtons type=radio value=6></label>
  <label>7 <input name=numberButtons type=radio value=7></label>
  <label>8 <input name=numberButtons type=radio value=8></label>
</div>
<button id=done>Done</button>
<div id="buttonsContainer"></div>

相关问题