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

jQuery dropdown not displaying first option

本文关键字:第一个 选项 显示 下拉列表 jQuery      更新时间:2023-09-26

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

第二个选项(iphone)似乎不会显示任何结果。我认为问题出在"选择下拉菜单"功能的编号上,但我不知道具体是什么。

代码段:

$("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&Firefox。。

提前感谢!

Fiddle here

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

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

值应具有大写"p"

有预感,但请尝试删除console.log条目。

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

编辑

想要更好的解释,请查看这个问题。控制台.log IE9发布

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

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

使用代码段中的调试器,搜索的值为"div.iphone.Case",其中需要"div.iphone.Case"