比方说,我有以下形式:如何选择表单中的输入,其ID包含点
<form id="myForm">
<input id="my.input.blabla"></input>
</form>
我将如何选择输入,如果它包含了点?
喜欢的东西
document.getElementById("myForm").getElementById("my.input.blabla");
不起作用。
比方说,我有以下形式:如何选择表单中的输入,其ID包含点
<form id="myForm">
<input id="my.input.blabla"></input>
</form>
我将如何选择输入,如果它包含了点?
喜欢的东西
document.getElementById("myForm").getElementById("my.input.blabla");
不起作用。
所有你需要的是getElementById()
单个呼叫:
var inp = document.getElementById("my.input.blabla");
的“ID”属性的值必须是唯一的,所以有在划定范围的查找到页面的特定部分是没有意义的。
它不起作用的原因是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;
}
}
}
'.'不管'的document.getElementById( “my.input.blabla”) '甚至工作 – Girish