如何通过循环获取JavaScript dom中元素的多个属性的值
How to get the value of more than one attribute of element in JavaScript dom via loop
我如何通过循环从 HTML evlemnt 获取所有属性的列表值现在从我的代码中,我有三个 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);
}
像这样,
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);
}
}
使用 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
的数组对象。然后我们使用排序按字母顺序对数组进行排序。我们根据属性的名称进行排序。我们不想返回属性的名称,所以我们使用 map
再次遍历数组。现在只返回值。最后,我们使用 join
返回字符串中的值。
相关文章:
- 锚点元素的href属性自动更改
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 通过id和class属性获取元素
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- javascript来显示元素属性
- 自定义HTML元素属性未显示-Web组件
- 如何使用element.myobj.prop等具有对象属性的元素
- 将特定属性动态添加到元素中
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 为什么样式属性不适用于使用DOMParser创建的元素
- .querySelectorAll如何只获取具有所有属性的元素
- 如何使用jQuery按数据日期属性选择元素
- 使用数据属性将HTML数据复制到另一个元素
- JQuery:使用clone()生成的元素不采用原始的事件属性
- 价格滑动过滤器-隐藏父属性元素
- 未捕获的类型错误:不能读取属性'元素不存在
- 将信息存储在变量与数据属性元素中
- 添加HTML5 DATA属性元素存储在Javascript变量