比方說,我有以下形式:如何選擇表單中的輸入,其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