使用jQuery进行顺序XML过滤?

时间:2013-03-28 20:25:42

标签: jquery xml

我正在尝试按顺序解析XML - 我之所以不是一次只查找多个属性,是因为某些必需属性需要if语句,所以我正在尝试为此设置。我尝试了下面的代码,但它没有用 - 只返回一个空白的响应(将内容区域空白,没有填充)。我知道其余的代码是有效的,因为我已经测试过了。

$.get('wallets.xml', function(data) {
    $('#content').empty();
    var $genders = $(data).find('wallet[gender=' + genderChosen + ']');
    $genders.find('wallet[material="leather"]').each(function() {
        var $wallet = $(this);
        printWallet($wallet);
    });
    });
}

注意我是如何尝试按一个属性过滤XML结果,然后获取这些结果并按其他属性过滤它们。我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:0)

请注意,find方法会搜索您调用它的集合的后代。看到你的两个选择器都使用标记名wallet,我怀疑你第二次使用filter,这会通过选择器表达式缩小集合:

$.get('wallets.xml', function(data) {
    $('#content').empty();
    var $genders = $(data).find('wallet[gender=' + genderChosen + ']');
    $genders.filter('wallet[material="leather"]').each(function() {
        var $wallet = $(this);
        printWallet($wallet);
    });
});

您还遇到语法错误,该错误在上面的代码段中得到了纠正。其他可能的错误来源可能是printWallet什么都不做,或者您的XML格式不正确。