2010-07-02 87 views
2

$(function#({#IBE1_IBE_NurFlug1_ddl_Abflughafen> option [value * =「TR」]')。attr(「style」,「display:none;」 );JQuery:隱藏MSIE,Safari,Chrome的問題

不會隱藏在選擇的選項也.hide不工作有什麼錯在這裏在Firefox它的確定

THX很多

回答

5

火狐由於某種原因,是唯一的瀏覽器我。?。已經使用過,讓我們通過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

0

假設你是幸福刪除選項,不需要後來那麼這將是更簡單...

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