如何选择表单内的输入,ID包含点

时间:2014-06-26 13:48:41

标签: javascript

假设我有以下表格:

<form id="myForm">
    <input id="my.input.blabla"></input>
</form>

如果包含点数,我该如何选择输入?

这样的东西
document.getElementById("myForm").getElementById("my.input.blabla"); 

不起作用。

2 个答案:

答案 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;
            }
    }   
}