繁体   English   中英

如何创建一个具有html标签所有属性的对象?

[英]How to create an Object with all attributes of a html tag?

这是我的测试代码,摘自我正在构建的表单:

<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函数),未列出属性“ tipo”。 该属性返回“未定义”。 它缝接使用标记中的信息创建的对象,而不是“标记到对象”的转换。 使用externalHTML,我可以手动完成此操作(希望此属性是跨浏览器),但是我想知道是否存在使用JavaScript资源的方法...我该怎么做?

一旦有了对元素的引用,就可以遍历其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+'"');
}

尝试这个:

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];
    }
 } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM