0

我有这样的下拉菜单,

<div class="my_div">
    <select name="selection" id="select_id">
        <option value="0">A</option>
        <option value="5">B</option>
        <option value="6">C</option>
        <option value="7">D</option>
        <option value="8">D</option>
        <option value="9">F</option>
    </select>
</div>

我的链接看起来像这样,

<a class="links" href="#">Disable A C D</a>
<a class="links" href="#">Disable B E F</a>

我的脚本看起来像这样,

$(document).ready(function(){
    $('.links a').click(function(){
        var txt = $(this).text();       

        if( txt == 'Disable A C D'){
            $('div.my_div #select_id').find("option[value='0']").hide();
            $('div.my_div #select_id').find("option[value='6']").hide();
            $('div.my_div #select_id').find("option[value='7']").hide();
        }
    });
});

这适用FirefoxChrome但只有禁用该选项才能起作用IE,隐藏它不起作用。我想念什么?干杯!

4

4 回答 4

0

您的代码示例不适用于任何浏览器。

'.links a' 应该只是 '.links' 或 'a.links',当 '#select_id' 可以正常工作时,你不需要 'div.my_div #select_id'。

对于您的问题,看起来 IE 不喜欢display: noneOption 元素。您可能必须根据需要以编程方式删除和添加选项到 Select 中。

于 2012-10-12T18:35:33.693 回答
0

您的链接选择器错误。尝试这个:

$('a.links')

这个小提琴适用于 IE(至少 9 个):http: //jsfiddle.net/gromer/2qyT7/1/

请注意,该 Fiddle 中有几个 console.logs,可能会使 IE 生气。

它不会隐藏option在 IE 中,但它们已被禁用。

编辑:我根据您在 SO 上找到的要求和答案为 IE 拼凑了这个解决方法。

新小提琴:http: //jsfiddle.net/2qyT7/19/

于 2012-10-12T18:25:53.500 回答
0

它只适用于FF,它不应该。(见这个 jsFiddle

这个问题也已经问过了。

如果您真的想从您的选择列表中删除该选项,您应该完全删除它们,而不是隐藏它们。如果您可能想要它们回来,请将它们移到内存中的其他数组中。

于 2012-10-12T18:41:07.710 回答
0

...您确定它可以在 chrome 中使用吗?http://jsfiddle.net/KEfjM/2/这是 CSS/浏览器支持问题,不是 jQuery 问题。唯一的解决方案是从选择中删除选项。

$(document).ready(function(){
    $('.links a').click(function(){
        var txt = $(this).text();    
        if( txt == 'Disable A C D'){
           $('#select_id').find("option[value='0'],option[value='6'],option[value='7']").detach();
        }
    });
});
于 2012-10-12T18:38:36.073 回答