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

时间:2010-07-02 14:12:50

标签: jquery hide

$(function(){        $('#IBE1_IBE_NurFlug1_ddl_Abflughafen>选项[value * =“TR”]')。attr(“style”,“display:none;”);

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

很多

2 个答案:

答案 0 :(得分:5)

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

事实上,您无法隐藏<option>元素 - 必须将其从<select>的{​​{1}}数组中移除。

修改

示例:

options[]

您可以看到示例实时here

我们的想法是从(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; } }); }());​ 中提取所有<option>个孩子。这对于正确的索引是必要的(所以我们删除正确的东西)。

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

each正在计算删除次数,因此我们不会删除错误的diff,因为<option>数组的大小会因之前的删除而减少。

答案 1 :(得分:0)

假设您乐意删除该选项并且以后不需要它,那么这将更简单......

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