我希望获得表格中的所有元素。我可以使用document.getElementById('form').elements
来做到这一点,但它会返回我不想要的额外属性(见下文)。我如何"删除"它?
代码:
var result = document.getElementById('form').elements;
for(var key in result)
{
console.log(key, ' = ', result[key]);
}
这是输出:
0 = <input id="A" type="text" name="A" value="a">
1 = <input id="B" type="text" name="B" value="b">
2 = <input type="checkbox" name="C">
namedItem = namedItem()
item = item()
@@iterator = @@iterator()
length = 3
我只想要HTML元素,即值0,1和2.像这样:
0 = <input id="A" type="text" name="A" value="a">
1 = <input id="B" type="text" name="B" value="b">
2 = <input type="checkbox" name="C">
我知道这样一个简单的测试:
if(!isNumber(key))
continue;
会做得很好,但我正在寻找一个优雅的&#34;解决方案,如果没有,将使用此测试。
答案 0 :(得分:2)
最快的方式:
var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}
答案 1 :(得分:1)
根据我的观点,这样做的好方法是。
if(!isNumber(key))
continue;
另一种方法是检查节点名称。
var result = document.getElementById('form').elements;
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}
jsfiddle =&gt; http://jsfiddle.net/v9vb3t26/
答案 2 :(得分:0)
试试这个很酷的方式
var myForm = document.getElementById("myForm");
//Extract Each Element Value
for (var i = 0; i < myForm.elements.length; i++) {
console.log(myForm.elements[i].value);
}
<form id="myForm" name="myForm">
<input type="text" name="User" value="Arsalan"/>
<input type="password" name="pass" value="123"/>
<input type="number" name="age" value="24"/>
<input type="text" name="email" value="johndoe@test.com"/>
<textarea name="message">Enter Your Message Her</textarea>
</form>
答案 3 :(得分:0)
您可以通过
执行此操作var result = document.getElementById('form').elements;
console.log(result);
for(var key in result)
{
if(result.hasOwnProperty(key))
console.log(key, ' = ', result[key]);
}