设置一个复选框,其中包含使用javaScript选中的特定名称和id

设置一个复选框,其中包含使用javaScript选中的特定名称和id,javascript,html,Javascript,Html,在我的HTML文件中,我想设置一个带有特定名称和id的复选框,即=checked。我怎样才能做到这一点 例如: 注意:我有其他元素具有相同的id,但名称不同,以及相同的名称,但id不同。但没有两个元素具有相同的id。以数字开头的HTML元素id是不正确的。重命名您的id并使其唯一。javascript引擎也会将id值1计算为true。 但是,如果您的HTML文档与HTML5兼容,则id以数字开头不是问题。您可以这样做,这并不理想,但可以解决问题 var names = document.getE

在我的HTML文件中,我想设置一个带有特定名称和id的复选框,即=
checked
。我怎样才能做到这一点

例如:


注意:我有其他元素具有相同的id,但名称不同,以及相同的名称,但id不同。但没有两个元素具有相同的id。

以数字开头的HTML元素id是不正确的。重命名您的id并使其唯一。javascript引擎也会将id值1计算为true。
但是,如果您的HTML文档与HTML5兼容,则id以数字开头不是问题。

您可以这样做,这并不理想,但可以解决问题

var names = document.getElementsByName(nameToFind);
names.forEach(funciton(item) {
  if (item.id == idToFind)
    item.checked = true;
});

正如我所说,ID在DOM中总是唯一的。因此,具有相同ID的元素是无效的

但是,您可以使用
getElementsByName
通过name属性进行选择,因为此选择支持多个元素。它只会创建一个数组,您可以通过索引值访问该数组。因此,您可以循环遍历所有元素并逐个检查它们:

var elem = document.getElementsByName('myName_1');

for(var i = 0; i < elem.length; i++)
{
   elem[i].checked = true;
}
var elem=document.getElementsByName('myName_1');
对于(变量i=0;i

正如一些评论所提到的,拥有多个具有相同id的元素是无效的。如果有多个具有相同id的元素,则该行为是不可靠的。 如果您有相似的元素分组,那么许多开发人员的一个共同约定是给他们一个公共类。这可能/将取代您对姓名的使用。然后,您可以搜索特定类中具有特定id的元素(这可能是多余的,取决于您的使用)

使用
document.getElementsByClassName(“myClass”)
按类搜索,它返回一个元素数组,类似于
getElementsByName
。一旦你有了这个数组,你就可以通过循环来确定你的id是否在这个类组中[见下面的注释],并根据需要应用效果。(例如,
elementArray[i].checked=true


注意-在我看来,搜索id然后确定类会更有效。

id在DOM中总是唯一的,所以你不应该检查id和名称。或者你可以看看函数
getElementsByName
@Bartdude-jap,这会起作用:)@nkmol:我得到了一个具有不同元素的DOM(类型)具有相同的id。是否无效?那我该怎么办?同一个身份证永远都不行。不幸的是,您仍然在一些验证框架中看到它,这些框架(错误地)认为这是实现他们想要的唯一方法。相同的名称可能有效,例如,如果有多个表单,或一系列单选按钮/复选框都应用于具有不同值的同一“键”。我个人的偏好是只使用name属性来访问javascript.HTML5中的内容,元素ID可以以数字开头。用户没有指定doctype,所以假设不是HTML5,我同意用户应该避免这种情况。但这仍然不能回答他的问题。谢谢nkmol,我在您的代码帮助下完成了其余的工作。非常感谢:)
var names = document.getElementsByName(nameToFind);
names.forEach(funciton(item) {
  if (item.id == idToFind)
    item.checked = true;
});
var elem = document.getElementsByName('myName_1');

for(var i = 0; i < elem.length; i++)
{
   elem[i].checked = true;
}