0

我正在尝试按顺序解析 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 结果,然后获取这些结果并按另一个属性过滤它们。我怎样才能做到这一点?

提前致谢!

4

1 回答 1

0

请注意,该find方法搜索您调用它的集合的后代。看到您的两个选择器都使用标签 name 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 格式不正确。

于 2013-03-28T20:32:13.283 回答