![](/img/trans.png)
[英]how to create more than one element in the DOM with js using a for loop?
[英]How to get the value of more than one attribute of element in JavaScript dom via loop
我如何從循環中從HTML evlemnt獲取HTML屬性的所有屬性的列表值,現在我有三個attr我想通過循環獲取一個列表中所有三個attr的值,我該怎么做? 例:
f1="hi"
f2=" how"
f3=" are"
f4="you"
在按鈕元素中,我想將所有元素放在一起
var elem = document.getElementById("target");
for (var i = 0; i < elem.attributes.length; i++) {
var attrib = elem.attributes[i];
alert(attrib.name + " = " + attrib.value);
}
使用element.attributes
function returnAttributes(el) { return Array.prototype.map.call(el.attributes, function(obj){ return [obj.name, obj.value]; }).sort(function(a, b){ return a[0]-b[0] || a[0].localeCompare(b[0]); }).map(function(a){return a[1];}).join(" "); } document.querySelector("button").addEventListener("click", function(){ var attr = returnAttributes(document.querySelector("button")); alert(attr); }, false);
<button f1="How" f2="are" f3="you" f4="doing?" >Test</button>
它看起來像魔術,但僅執行以下操作:
Element.attributes
是一個數組對象。 我們可以使用Array.prototype.map.call
循環它。 Map
遍歷所有元素,並對它們執行操作。 在這種情況下,返回帶有包含屬性name
和value
數組對象的數組。 然后,我們使用sort按字母順序對數組進行排序。 我們對屬性名稱進行排序。 我們不想返回屬性的名稱,因此我們使用map
再次遍歷數組。 現在僅返回值。 最后,我們使用join
返回字符串中的值。
像這樣,
function getValues() {
var yourElement = document.getElementById("your_element_id");
var valueArray = [];
for(var i = 0; i < yourElement.attributes.length; i++) {
vauleArray.push(yourElement.attributes[i].value);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.