2013-04-02 41 views
0

我正在寫一個jQuery應用程序,以幫助用戶從網上商店選擇產品。我通過根據他們的選擇順序過濾XML來做到這一點。我的代碼現在的問題是隻有第一個選項(我現在只用了2個選項)。如果用戶先選擇「男性」或「女性」,則他們看到所有的男性或女性錢包。但是如果他們選擇了一種材料,頁面根本不會改變。相反的情況也是如此:如果他們首先選擇一種材料,他們會看到該材料的所有錢包,但是如果他們選擇了性別,則不會進一步縮小範圍。jQuery序列XML過濾只適用於第一個選項

這裏是適用的代碼:

$.get('wallets.xml', function(data) { 
// Get the chosen wallets 
if (genderChosen && genderChosen != "" && $walletsChosen instanceof jQuery) { 
    $walletsChosen.filter('wallet[gender=' + genderChosen + ']'); 
} 
else if (genderChosen && genderChosen != "") { 
    $walletsChosen = $(data).find('wallet[gender=' + genderChosen + ']'); 
} 
if (materialChosen && materialChosen != "" && $walletsChosen instanceof jQuery) { 
    $walletsChosen.filter('wallet[material=' + materialChosen + ']'); 
    alert("material chosen, jQuery"); 
} 
else if (materialChosen && materialChosen != "") { 
    $walletsChosen = $(data).find('wallet[material=' + materialChosen + ']'); 
    alert("material chosen, non-jQuery"); 
} 
// Print the chosen wallets 
if ($walletsChosen instanceof jQuery) { 
    $('#content').empty(); 
    $walletsChosen.each(function() { 
     var $wallet = $(this); 
     printWallet($wallet); 
    }); 
} 
}); 
+0

這是網址:http://ajaxtest.walletwallets.com/ajax12.php(控制檯中沒有錯誤) – bmcswee

+0

另外,我試着在每個「if」塊中放置警報以確保它們正在執行,並且它們是。 – bmcswee

回答

0

.filter產生源組的濾波版本。它不會改變集合本身。

而不僅僅是$walletsChosen.filter(...)你想使用$wallesChosen = $wallestChosen.filter(...)

+0

謝謝!這對我來說是一個非常不理智的監督......(對不起) – bmcswee

相關問題