我想从xml文件中获取属性值,我使用以下代码来获取属性值:
var result=$(xml).find("segment[id=1]").attr("name");
但是因为它是attr的定义,它只返回第一个值。我需要所有的attrib值,我在xml解析中研究了.each()函数。但我没有得到所有属性。 xml如下: -
<?xml version="1.0" encoding="UTF-8"?>
<code_gen>
<segment id="1" name="POS">POS.txt</segment>
<segment id="1" name="On_Off">on_off.txt</segment>
<segment id="1" name="Sellert">seller.txt</segment>
<segment id="1" name="Cross_Border">cross.txt</segment>
<segment id="1" name="NA">NA.txt</segment>
</code_gen>
答案 0 :(得分:2)
您可以使用.map()
和.get()
来获取数组格式的所有名称属性
尝试,
var allNames = $(xml)
.find("segment[id=1]")
.map(function(){
return $(this).attr('name');
}).get();
答案 1 :(得分:0)
您应该使用.each()
迭代匹配选择器中的多个元素:
var allName=[];
$(xml).find("segment[id=1]").each(function(){
allName.push($(this).attr("name"));
})
答案 2 :(得分:0)
Vanilla JS
var atr = document.getElementById("someId").attributes;
var arr = [];
for (var i=0, l=atr.length; i<l; i++){
// arr.push(atr.item(i).nodeName); // attribute name
arr.push(atr.item(i).nodeValue); // attribute value
}
JQuery的
var attributes = {};
$('#some_id')[0].attributes.each(function( index, attr ) {
attributes[ attr.name ] = attr.value;
});