假设我有以下表格:
<form id="myForm">
<input id="my.input.blabla"></input>
</form>
如果包含点数,我该如何选择输入?
像
这样的东西document.getElementById("myForm").getElementById("my.input.blabla");
不起作用。
答案 0 :(得分:4)
您只需拨打一次getElementById()
:
var inp = document.getElementById("my.input.blabla");
&#34; id&#34;的值属性必须是唯一的,因此将查找范围限定在页面的特定部分是没有意义的。
答案 1 :(得分:2)
它不起作用的原因是getElementById()是文档的函数而不是DOM元素的函数。
这些点没有什么不同。
id属性应该(在有效的HTML文档中)是唯一的,并且没有理由指定父元素(示例中的表单)。 您可以使用:
document.getElementById("my.input.blabla");
如果您的HTML文档包含多个具有相同ID的元素,并且您无法更改它(不是您的文档,创建浏览器扩展等),您可以尝试使用以下功能之一DOM元素:
some_dom_element.getElementsByClassName
some_dom_element.getElementsByTagName
您可以尝试这样的事情:
// Get the form
var my_form = document.getElementById('myForm');
//Get all input elements in the form
var inputs = my_form.getElementsByTagName('input');
for (var i = 0; i< inputs.length ; i++ )
{
var tmp_input = inputs[i];
// Get the element's id and check if it's the one you need
if (typeof tmp_input.getAttribute !== "undefined")
{
var input_id = tmp_input.getAttribute ('id');
//if(input_id === "the id you are looking for")
if(input_id === "my.input.blabla")
{
/// Found the input element, use it here
break;
}
}
}