jQuery下拉列表不显示第一个选项

时间:2015-04-01 14:40:30

标签: javascript jquery drop-down-menu internet-explorer-9

因此,我在客户端网页上有一个下拉过滤器,下拉列表应该通过匹配隐藏div中的类并显示相关内容来工作。但是,在IE9(以及链接小提琴)中你可以看到这不起作用。

第二个选项(iphone)似乎没有显示任何结果。我认为这个问题取决于'select.dropdown'函数的编号,但我无法弄清楚究竟是什么。

段:

$("select.dropdown").change(function(){
var filters = $.map($("select.dropdown").toArray(), function(e){
    return $(e).val();
});

var filter;
if(filters[0]=="all")
{
    if(filters[1]=="all")
       filter = "";
    else
       filter = "." + filters[1];
}
else{
    if(filters[1]=="all")
       filter = "." + filters[0];
    else
       filter = "." + filters.join(".");
}
$("div#FilterContainer > div").hide();
$("div#FilterContainer").find("div" + filter).show();
console.log(filters);

有什么想法吗?

过滤适用于IE10 +和Chrome&火狐..

提前致谢!

Fiddle here

3 个答案:

答案 0 :(得分:3)

在你的html中,过滤器值不正确。

<option value="iphone">iPhone</option>

值应该有一个大写'P'

答案 1 :(得分:0)

在这里预感,但尝试删除console.log条目。

IE9存在console.log条目或IE9中传递给控制台对象的任何其他方法的问题。

修改

要获得更好的解释 - 请查看此问题。 Console.log IE9 issue

答案 2 :(得分:0)

您的第一个下拉值包含选项“iphone”(小写),包含结果的div具有类名“iPhone”。这些情况不匹配,因此.find在以下行中不起作用:

$("div#FilterContainer").find("div" + filter).show();

在您的代码段中使用调试器,您搜索的值是“div.iphone.Case”,您需要“div.iPhone.Case”