选择属性值到列表中

时间:2011-09-28 19:23:01

标签: jquery jquery-selectors

我有以下xml:

<ListOfItems>
   <item myval='123' />
   <item myval='342' />
   <item myval='233' />
   <item myval='444' />
</ListOfItems>

我正在使用jQuery解析/遍历它。什么是选择器,它将为我提供“项目”节点的属性“myval”中所有值的列表。我正在寻找能让我回到价值列表的东西。也许是数组['123,'342','233','444']

4 个答案:

答案 0 :(得分:2)

请记住,我不认为这些是有效的元素,我建议:

var listOfValues = [];

$('ListOfItems > item').each(
    function(){
        listOfValues.push($(this).attr('myval'));
    });

鉴于希望使用单个选择器,可以采用以下方法:

var myvals = $('li').map(
    function(){
        return this.getAttribute('myval');
    }).get().join(', ');

JS Fiddle Demo

答案 1 :(得分:1)

您需要遍历项目列表。例如:

var itemsArray = [];
$("ListOfItems").each(function(index) {
    itemsArray[index] = $(this).attr('myval');
});

答案 2 :(得分:1)

var data = new Array();
$(xml).find('item').each(function() {
   data.push($(this).attr('myval'));
});

其中xml是您的xml内容。

或:

var array = $(xml).find('item').map(function() {
       return $(this).attr('myval');
    }).get();

答案 3 :(得分:1)

使用.map()功能。

var listOfItems = $('ListOfItems items').map(function() {
    return $(this).attr('myval');
});

这是一个非常漂亮的功能(以及$.map())很多人都错过了。

请记住,这会返回一个jQuery对象,因此如果您想要了解 raw 返回的数组,则必须通过listOfItems.get()进行操作。