Jquery推送数组中的元素

时间:2012-03-20 00:18:18

标签: jquery

我不确定现有代码是否存在错误,或者Jquery Array中的功能如下所示:

var categories = [];
$(this).children('categories').each(function() {
    categories.push($(this).find('name').text());
});

现在我有以下XML节点:

<categories>
    <name>a</name>
    <name>b</name>
    <name>c</name>
</categories>

我在Firebug中看到,categories数组有一个元素 - “abc”但实际上它应该是索引2,其值为'a','b'和'c'

我的代码中有什么问题吗?

2 个答案:

答案 0 :(得分:6)

$(this).children('categories').each(function() {
    $(this).find('name').each(function(){
        categories.push($(this).text());
    });
});

答案 1 :(得分:3)

var categories = [];
$(this).find('categories name').each(function() {
    categories.push($(this).text());
});

您循环遍历每个categories元素(只有一个),并获取其中名为name的所有元素的文本。只有一次text调用只意味着一个值。您需要遍历name而不是categories元素。