JQuery:用MSIE,Safari,Chrome隐藏问题

use*_*507 2 jquery hide

$(function(){$('#IBE1_IBE_NurFlug1_ddl_Abflughafen> option [value*="TR"]').attr("style","display:none;");

不会隐藏选择中的选项.另外.hide不起作用.这有什么不对?在Firefox中没关系.

多谢

Mat*_*att 5

Firefox出于某种原因是我用过的唯一一个浏览器,让你<option>通过CSS 修改元素.

事实上,你不能隐藏<option>元素-它们必须从被删除<select>options[]阵列.

编辑:

例:

(function () {
    var select = $('#IBE1_IBE_NurFlug1_ddl_Abflughafen');
    var diff = 0;
    console.dir(select[0].options);
    select.find('option').each(function(x) {
        if ($(this).is('[value*="TR"]')) {
            select[0].options[x+diff] = null;
            diff -= 1;
        }
    });
}());?
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到这个例子.

这个想法是把所有的<option>孩子都拉下来<select>.这对于正确的索引是必要的(所以我们删除正确的东西).

然后我们遍历<option>s并运行你的选择器.如果匹配,我们将根据传递的索引删除该选项each.

diff计数的清除,所以我们不要误删<option>options[]阵列从以前的缺失尺寸减小.