jQuery - 根据下拉列表或单选按钮选择显示结果

时间:2012-11-15 16:41:05

标签: jquery drop-down-menu radio-button filtering

我对jquery比较新,并且找到了与我正在寻找的相似的结果,但没有发现。

我正在尝试做什么 根据下拉菜单或单选按钮选择显示不同的结果选择。我面临的问题是我想引用属性而不是类或段落等。

我的值为“Years”,我在“product-item”类中也有“Year”属性。当选中的下拉列表等于属性时,我希望显示相关内容。

最后,我在默认情况下显示2012内容时遇到了问题。

Here's the code at js fiddle

$("#search-filter").bind("change", function() {   

$(this.value).show();

$('.product-item[year!=""]').hide();

我假设它是引号内的某种形式的“this”[year!=“”]

非常感谢任何有关上述内容的帮助以及解释。

2 个答案:

答案 0 :(得分:1)

试试这个

$("#search-filter").val('2012');

$("#search-filter").on("change", function() { 

    $('.product-item').hide();

    var val = this.value;

    $('.product-item[year="'+val +'"]').show();

}).change();​

<强> Check Fiddle

看起来这会弄乱你的代码......

$(this.value) .. this.value为您提供了一个字符串,并且您尝试将文字转换为jQuery Object ..您需要DOM object转换为jQuery Object }

也可以使用.on()而不是.bind(),因为jQuery 1.7是首选的

答案 1 :(得分:0)

虽然我不太确定你在这里会发生什么,但我认为我至少可以帮助你走向一个方向。

致电

$(this.value).show();

正在说我在页面中寻找一个带有与该值匹配的标签的元素(在这种情况下为'2009','2010'等...)

您可能想要做的是使用属性搜索选择器

$('.product-item[year="' + this.value + '"]').show();

将定位正确的元素