2013-03-28 68 views
0

我試圖解析XML順序 - 我不只是一次尋找多個屬性的原因是因爲一些必需的屬性將需要如果語句,所以我試圖爲此設置。我嘗試了下面的代碼,但它不起作用 - 只是返回一個空白的響應(將內容區域填充爲空)。我知道其他代碼的工作原理,因爲我已經測試過了。使用jQuery進行順序XML過濾?

$.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結果,然後把這些結果和其他屬性進行過濾。我怎樣才能做到這一點?

在此先感謝!

+0

另請注意,控制檯中沒有錯誤。 – bmcswee

+0

你應該至少得到一個語法錯誤。你有不匹配的括號。 –

+0

最後懸掛的括號是我沒有展示的一部分 - 是你指的是什麼?當我運行完整的代碼時,我絕對不會在Chrome或Firefox中出現任何錯誤。 – bmcswee

回答

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格式不正確。

+0

這也不起作用。我很積極,它不是代碼的另一部分,而且XML是有效的,因爲如果我簡單地忽略以$ genders.find開頭的行,並從上面的行開始.each,它就可以正常工作。 – bmcswee

+0

@bmcswee您認爲在第一個集合中可能沒有任何具有該屬性值的「錢包」元素? –

+0

這裏絕對有......可以在http://ajaxtest.walletwallets.com/ajax10.php查看我的測試頁面和XML文件 – bmcswee