簡體   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