Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ES6从表单中选择所有无线电组?_Javascript_Radio Button_Radio Group - Fatal编程技术网

Javascript 如何使用ES6从表单中选择所有无线电组?

Javascript 如何使用ES6从表单中选择所有无线电组?,javascript,radio-button,radio-group,Javascript,Radio Button,Radio Group,我想使用name属性从表单中选择所有无线组: <form action="#" id="my-form"> <input type="radio" name="question1" value="1" /> <input type="radio" name="question1" value="2&quo

我想使用
name
属性从表单中选择所有无线组:

<form action="#" id="my-form">

   <input type="radio" name="question1" value="1" />
   <input type="radio" name="question1" value="2" />

   <input type="radio" name="question2" value="1" />
   <input type="radio" name="question2" value="2" />

   <input type="radio" name="question3" value="1" />
   <input type="radio" name="question3" value="2" />

</form>

但是这会返回所有的输入,现在我不知道如何制作一个过滤器来只保留每组的一个输入,您能帮我吗?

您可以在查询选择器中这样指定问题

const radios=document.querySelectorAll('input[name=“question2”]”)
控制台日志(无线电)

您可以在此处放置多个选择器,例如:第一个选择器选择单选框,另一个选择器选择您选择的值或任何特定数据属性,以将单选框分组为代码片段

const allRadio=document.querySelectorAll('[type=“radio”][value=“1”]');
log('所选元素的计数为',allRadio)

inps=document.queryselectoral(“输入[名称]”)
唯一=[];
对于(变量i=0;i
这将为您提供一个具有唯一名称的元素数组。将从每个名称中选择具有名称的第一个元素

它是如何工作的

  • 通过元素循环
  • 如果当前元素是第一个元素(第一个条件),或者当前元素的名称与最后一个元素(第二个条件)不匹配,则将当前元素添加到最终列表中
  • 属于另见。
    document.querySelectorAll("input[name]");
    
    inps = document.querySelectorAll("input[name]")
    unique = [];
    for(var i=0; i< inps.length; i++){
        if(!i || inps[i-1].getAttribute("name")!=inps[i].getAttribute("name"))
            unique.push(inps[i])
    }
    console.log(unique)