更新2:的jQuery - 基於從點擊過濾器選項和集裝箱元素匹配的值過濾元件值
非常感謝你們的幫助。雖然這三種解決方案都有效,但我喜歡Bill的可讀性和性能。與往常一樣,我對這裏的專業水平和幫助感到驚訝。真的很感謝幫助。
UPDATE:
把演示了對的jsfiddle:http://jsfiddle.net/FC4QE/17/
我需要創建一個過濾器。用戶點擊品牌名稱鏈接,如果有匹配,則需要過濾掉其他產品。該品牌包含在產品名稱中,因此我正在尋找匹配,如果有一個或多個,我需要隱藏其他產品。
我有以下javascipt的/ jQuery代碼:
$(function(){
$('#filter-by-brand li a').click(function(){
// get html string of clicked item
var brandNameSelected = $(this).html();
var productContainer = $('#product-collection div.productBoxWrapper');
// reset products in the view
if (brandNameSelected == 'All Brands'){
productContainer.fadeIn("slow");
}
// for each product title (a tag)
$("#product-collection h4 a").each(function(){
var productTitle = jQuery(this).html();
// if item clicked is contained inside product title, hide all
// products and only show the ones where the title matched
if(productTitle.indexOf(brandNameSelected) != -1){
// hide container of all products, this hides all products
productContainer.fadeOut("slow");
// then show only ones that match. the problem is that only the one product is
// displayed since we're inside the .each. How can I show all products where product title contains the item clicked?
$(this).parent().parent().parent().parent().fadeIn("slow");
}
});
});
});
我在代碼中的註釋解釋了一切,但基本上,而代碼的工作,因爲我表示在項目點擊產品包含在.each方法中,它只顯示匹配的最後一個項目。我怎樣才能在.each裏面顯示所有匹配的或者這是不可能的,還有另一種方式嗎?
希望這是有道理的,有人可能會有一些建議! 謝謝。
這將是更容易幫助,如果你表明,這一代碼進入的HTML,甚至更好,使之成爲http://jsfiddle.net – 2012-04-29 05:42:56
你能做出的jsfiddle,我們可以撥弄? – Teak 2012-04-29 05:43:23
爲什麼不使用html5數據屬性或嘗試實現名稱標籤以滿足您的需求? 。 $(「a [name * ='+ search_brand_query +']」); – Philip 2012-04-29 05:47:31