设置一个复选框,其中包含使用javaScript检查的特定名称和id
Set a check box with specific name as well as id as checked using javaScript
在我的HTML文件中,我想设置一个具有特定名称和id的复选框,即=checked
。我怎样才能做到这一点。。?
例如:
<input type="checkbox" name="myName_1" id="1" value="my Value 1"> my Value 1
我知道document.getElementById('id').checked = true;
,但这只检查id
。我需要使用JavaScript
同时检查id
和name
。请帮忙。
编辑:更具体的:
if(document.getElementById(1) && document.getElementById(1).type == "checkbox" ){
document.getElementById(1).checked = true;
}
注意:我有其他元素,它们有相同的id,但有不同的名称,也有相同的名称,但不同的id。但没有两个元素两者都有共同点。
正如我所说,ID在DOM中总是唯一的。因此,具有相同ID的元素是无效的。
但是,您可以使用getElementsByName
通过name属性进行选择,因为此选择支持多元素。它只会创建一个数组,您可以通过索引值访问该数组。所以你可以循环浏览所有元素,并逐一检查它们:
var elem = document.getElementsByName('myName_1');
for(var i = 0; i < elem.length; i++)
{
elem[i].checked = true;
}
jsFiddle
拥有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的元素是无效的。如果有多个相同id,则行为是不可靠的。如果您有相似的元素分组,那么许多开发人员的一个常见约定是为它们提供一个公共类。这可以/将取代你对名字的使用。然后,您可以搜索某个类中具有特定id的元素。(根据您的使用情况,这可能是多余的。)
按类搜索是用document.getElementsByClassName("myClass")
完成的,它返回一个元素数组,类似于getElementsByName
。一旦你有了这个数组,你就可以循环来确定你的id是否在这个类组中[见下面的注释],并根据需要应用效果。(例如elementArray[i].checked = true
)
注意-在我看来,搜索id然后确定类会更有效率。
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 如何远程检查JavaScript应用程序的函数调用堆栈
- 如何检查Javascript何时完成
- 检查 javascript lib 是否已经存在
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 检查JavaScript中的单选按钮
- 正在检查JavaScript中是否存在关联数组
- 检查JavaScript中的日期时间是否相等时出现错误结果
- 检查Javascript是否包含某种方法
- 正在检查Javascript中的干扰时间跨度
- 检查javascript中的文本框是否为空
- 依赖对象类型检查Javascript似乎是多余的
- 通过ajax运行php页面时,请检查javascript中单击了哪个按钮
- 如何检查 JavaScript 文件中正在使用哪个 HTML
- 如何检查 javascript 函数及其参数
- 如何检查 JavaScript 对象是否为 JSON
- 如何在Selenium脚本中检查JavaScript变量
- 检查 javascript 数组是否不仅包含空值
- 如何检查 JavaScript 数组中是否存在项
- 如何检查 JavaScript 对象中是否存在值,以便不加倍