这是我的测试代码,从我构建的表单中提取:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script>
function ini(){
console.log("Element dump:");
var elem = document.querySelector('form[name="form"] input[name="dataNasc"]');
for(var i in elem){
console.log(i+":"+elem[i]);
}
console.log("Form element dump:");
var Form = document.forms["form"];
var input = Form.dataNasc;
for(var i in input){
console.log(i+":"+input[i]);
}
}
</script>
<title>Untitled Document</title>
</head>
<body onload="ini();">
<form name="form" action="" method="post">
<label for="dataNasc">Data Nasc.</label>
<input type="text" name="dataNasc" maxlength="10" required="required" tipo="data" value="{dataNasc}" />
</form>
</body>
</html>
在我选择输入标签(ini功能)的两种情况下,属性&#34; tipo&#34;未列出。该属性返回&#34; undefined&#34;。它接缝是使用标签中的信息创建的对象,而不是对象&#34;的转换&#34;标签。使用outerHTML,我可以手动完成(希望这个属性是跨浏览器),但我想知道是否有使用JavaScript资源的方法......我该怎么做?
答案 0 :(得分:2)
一旦你有了对元素的引用,你就可以迭代它的attributes
NamedNodeMap来发现它的所有属性。例如,假设只有一个匹配元素匹配您的选择器...
var elt=document.querySelector('form[name="form"] input[name="dataNasc"]'),
attrs=elt ? elt.attributes : [];
for(var i=0; i<attrs.length; i++) {
console.log('attr "'+attrs[i].name+'" contains "'+attrs[i].value+'"');
}
答案 1 :(得分:0)
试试这个:
function ini(){
console.log("Element dump:");
var elem = document.querySelector('form[name="form"] input[name="dataNasc"]');
for(var i in elem){
console.log(i+":"+elem[i]);
}
console.log("Form element dump:");
var Form = document.forms["form"];
var input = Form.dataNasc;
var myObj = {};
for(var i in input){
myObj[i] = input[i];
}
}