无法使用JavaScript检索HTML元素的类型
我想知道如何用标记名检索元素的类型 我正在HTML表单上创建代码。有所有类型的HTML输入元素textfield、button、datepicker 我想要的是,如果用户从下拉列表中选择一个选项,请禁用复选框。但该复选框是使用PHP循环生成的,我还在复选框名称中传递了id,因此我无法使用:无法使用JavaScript检索HTML元素的类型,javascript,html,Javascript,Html,我想知道如何用标记名检索元素的类型 我正在HTML表单上创建代码。有所有类型的HTML输入元素textfield、button、datepicker 我想要的是,如果用户从下拉列表中选择一个选项,请禁用复选框。但该复选框是使用PHP循环生成的,我还在复选框名称中传递了id,因此我无法使用: document.getElementsByName('checkbox'); 我的复选框名为checkbox,因此我尝试使用: document.getElementsByTagName('input')
document.getElementsByName('checkbox');
我的复选框名为checkbox,因此我尝试使用:
document.getElementsByTagName('input');
我使用它来禁用复选框,但它禁用了页面上的所有输入元素。有什么解决办法吗?如何将type属性用作复选框并禁用on复选框:
function disabler()
{
checkboxes = document.getElementsByTagName('input');
if(checkboxes.type='checkbox')
{
for(var i=1, n=checkboxes.length;i<n;i++)
{
checkboxes[i].disabled = true;//here i want to disable only the checkbox on page
}
}
}
您使用的是赋值运算符=非比较==。更换这条线
if(checkboxes.type='checkbox')
与
或者严格比较运算符===也比较变量类型,例如0===0为false,但0==0为true
您还试图访问getElementsByTagName返回的集合的type属性。要访问特定元素,请将其作为数组引用复选框
if(checkboxes[0].type === 'checkbox') //accesses first checkbox element
要在检查每个元素(如果是复选框)时循环所有元素,请执行以下操作
for(var i=0; i < checkboxes.length; i++)
{
if(checkboxes[i].type === 'checkbox') {
checkboxes[i].disabled = true;
}
}
在JavaScript中,=是赋值运算符和===分别是松散和严格的相等运算符。因此:
if(checkboxes.type=='checkbox') // Loose, does type conversion (not relevant here)
或
复选框是一个节点列表,而不是单个元素。您需要在复选框[i]上进行测试:
请求帮助时,请花时间将代码格式化为可读。okkk thnk我会记住这一点。您是对的,即=是错误的运算符,但测试复选框。type也是错误的,因为复选框是一个列表…是的,我尝试了ifcheckboxes.type=='checkbox',但它不起作用@MeeneshJain,我编辑了答案。请参阅代码的最后一行。先生,我使用===它使我的代码无法工作。。。。。only=工作正常,但它禁用了该页面上的所有输入抱歉,我必须再次更新它。请现在检查一下。使用最后一段代码6行。
for(var i=0; i < checkboxes.length; i++)
{
if(checkboxes[i].type === 'checkbox') {
checkboxes[i].disabled = true;
}
}
if(checkboxes.type=='checkbox') // Loose, does type conversion (not relevant here)
if(checkboxes.type==='checkbox') // Strict, no type conversion (not relevant here)
function disabler()
{
checkboxes = document.getElementsByTagName('input');
for(var i=1, n=checkboxes.length;i<n;i++)
{
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].disabled = true;
}
}
}