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>
。
答
假设你是幸福删除选项,不需要后来那么这将是更简单...
$('#IBE1_IBE_NurFlug1_ddl_Abflughafen option[value*="TR"]').remove();
请您提供一个例子吗? – user168507 2010-07-02 14:19:39
@ceyago - 当然。查看我的更新。 – Matt 2010-07-02 14:23:54
对不起。没有注意到你的编辑。我会尝试,thx。但我想隐藏选项而不是.remove。因为我需要稍后再显示它。 – user168507 2010-07-02 14:35:12