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

问题描述:

$(function#({#IBE1_IBE_NurFlug1_ddl_Abflughafen> option [value * =“TR”]')。attr(“style”,“display:none;” );JQuery:隐藏MSIE,Safari,Chrome的问题

不会隐藏在选择的选项也.hide不工作有什么错在这里在Firefox它的确定

THX很多

火狐由于某种原因,是唯一的浏览器我。?。已经使用过,让我们通过CSS修改<option>元素。

In trut h,您不能隐藏<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; 
     } 
    }); 
}());​ 

你可以看到的例子住here

这个想法是从<select>拉动所有<option>孩子。这对于正确的索引是必需的(所以我们删除正确的东西)。

然后,我们遍历<option> s并针对它们运行您的选择器。如果匹配,我们会根据each传递的索引删除该选项。

diff正在计数清除,因此options[]阵列的大小从先前的删除中减少,因此我们不会删除错误的<option>

+0

请您提供一个例子吗? – user168507 2010-07-02 14:19:39

+0

@ceyago - 当然。查看我的更新。 – Matt 2010-07-02 14:23:54

+0

对不起。没有注意到你的编辑。我会尝试,thx。但我想隐藏选项而不是.remove。因为我需要稍后再显示它。 – user168507 2010-07-02 14:35:12

假设你是幸福删除选项,不需要后来那么这将是更简单...

$('#IBE1_IBE_NurFlug1_ddl_Abflughafen option[value*="TR"]').remove();