2016-08-30 113 views
1

如何將標籤的屬性添加到變量中,以便我可以將它們插入其他位置?jQuery,獲取標籤屬性並將它們分配給變量

所以輸入標籤應該指定一個變量:

tags = { 'type' : 'submit' , 'id' : 'submit' }; 

我知道你可以添加使用.attr()屬性,但像

testMe = $("#submit").attr(); 

不工作。

+0

刪除'testMe ='並把一些東西放在'attr()' – depperm

+0

看看這裏:http://stackoverflow.com/a/14645827/3611180 – pumpkinzzz

+0

我想將所有已分配給輸入的屬性添加到變量。所以我試圖獲取屬性並將它們放入一個變量中,而不是試圖將屬性添加到標記中。 –

回答

1

你可以通過element.attributes如循環得到的所有屬性:

$.each(document.getElementById("submit").attributes, function() { 
    tags[this.name] = this.value; 
}); 

希望這有助於。

var tags = {}; 
 

 
$.each(document.getElementById("submit").attributes, function() { 
 
    tags[this.name] = this.value; 
 
}); 
 

 
console.log(tags);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="submit" value="Submit" id="submit"/>

0

您可以使用節點的屬性映射到對象:

var obj = {}; 
Array.from(node.attributes).forEach(function (attr) { 
    obj[attr.name] = attr.value; 
}); 

在jQuery中,您可以通過.map()進行映射:

$(..selector..).map(function() { 
    var obj = {}; 
    $.each(this.attributes, function() { 
    obj[this.name] = this.value; 
    }); 
    return obj; 
}); 

什麼你最終會得到一個objec的集合ts包含每個節點的屬性。

然後,您可以使用.get()來訪問單個節點的屬性。

相關問題