如何在javascript中检查单选按钮是否没有名称或ID

如何在javascript中检查单选按钮是否没有名称或ID,javascript,Javascript,我试图在不使用名称或ID的情况下查看所有单选按钮的值,但是每当我尝试getElementByID时,我得到的对象都是无法识别的 编辑:我只想使用JavaScript,我不知道任何jQuery 函数getData{ var input=document.getElementsByTagName'input type=radio'; var inputList=Array.prototype.slice.callinput; 用于无线电输入{ 如果无线电检查 已选中console.logradio

我试图在不使用名称或ID的情况下查看所有单选按钮的值,但是每当我尝试getElementByID时,我得到的对象都是无法识别的

编辑:我只想使用JavaScript,我不知道任何jQuery

函数getData{ var input=document.getElementsByTagName'input type=radio'; var inputList=Array.prototype.slice.callinput; 用于无线电输入{ 如果无线电检查 已选中console.logradio.value+; 其他的 console.logradio.value+未选中; } } 功能切换按钮{ this.checked=true; } 单选按钮1 单选按钮2 单选按钮3
运行脚本 这里可能还有其他问题,但您没有得到您想要的是因为这一行:

var input=document.getElementsByTagName('input type="radio"');
您需要像这样选择元素:

var input = document.querySelectorAll('input[type=radio]');
更新:无论您如何循环您的阵列,或者在本例中,从技术上讲是节点列表,但您需要以某种方式将其视为阵列。您正在尝试使用for in循环,该循环用于对象。如果要使用forEach,可以按如下方式更新代码:

function getData() {
  var inputs = document.querySelectorAll('input[type=radio]');
  inputs.forEach( function (radio){
      if (radio.checked)
      console.log(radio.value + " is checked");
    else
      console.log(radio.value + " is not checked");
  });
}

已确定脚本中存在以下问题:

getElementsByTagName需要一个标记名作为参数。它不能在CSS选择器上工作,这在您的问题中实际上也是错误的。 若要在选定元素上循环,应在inputList上使用ArrayforEach,而不是直接在input上使用ArrayforEach。 更正这些问题,下面是代码的工作示例:

函数getData{ var input=document.getElementsByTagName'input'; var inputList=Array.prototype.slice.callinput; inputList.forEachfunctionradio{ 如果无线电检查 已选中console.logradio.value+; 其他的 console.logradio.value+未选中; }; } 功能切换按钮{ this.checked=true; } 单选按钮1 单选按钮2 单选按钮3 运行脚本! 使用jQuery选择具有相同名称的输入,然后选择选中的值 使用getElementsByName选择所有输入并获取节点列表。将其转换为数组,然后对其进行筛选并返回选中的值 函数getData1{ 常量输入=$输入[姓名=联系人]:已选中.val console.loginput; } 函数getData2{ const inputs=Array.fromdocument.getElementsByName'contact'; const val=inputs.filteri=>i.checked[0]。值; console.logval; } 电子邮件 电话 邮政 运行jQuery版本!
运行香草JS版本 如果您只使用普通JavaScript和一个但没有id、.class或[attribute]来连接,请使用HtmlFormControlsCollection如果我想添加其他类型的输入,如复选框,并且我想区分不同的类型,这将如何工作?除了循环错误的变量,使用for循环而不是使用forEach有什么错?为什么不使用计数器而访问它的值?querySelectorAll不起作用,它仍然返回未定义的值。是因为我没有使用forEach吗?只是补充了我的问题。使用我描述的选择器,您不会得到未定义。如果您使用console.log进行调试,您会看到这一点。在学习编程时,您需要在每一步检查代码:您如何让它一次只选择一个?而且我想做它没有任何名称或名称Ids@JonathanHuang我将第一个设置为签入HTML。由于它们共享相同的名称而不是id,所以id必须不同,它将自动工作。