2011-10-08 73 views
0

我有這樣的HTML代碼段和欲顯示:無在類ss_label其中它具有值來自:到:出發:返回:。最後3個具有額外的ss_label_adult,ss_label_child和ss_label_inf類,我希望它們能正確顯示。顯示:其中沒有一個具有不多於一個類

HTML從API中檢索,所以我不能改變它的方式。

<table cellspacing='0' class='ss_sp_as'> 
<tbody> 
<tr class='ss_sp_sc_from'> 
    <td class='ss_label'> 
     From: 
    </td> 
    <tr class='ss_sp_sc_to'> 
     <td class='ss_label'> 
      To: 
     </td> 
     </table> 
     <table cellspacing='0' class='ss_sp_dates'> 
     <tbody> 
     <tr class='ss_sp_sc_to'> 
      <td class='ss_label'> 
       Departing:&nbsp; 
      </td> 
      <tr class='ss_sp_sc_to'> 
       <td class='ss_label'> 
        Returning:&nbsp; 
       </td> 
       </table> 
       <table cellspacing='0' class='ss_sp_pass'> 
       <tbody> 
       <tr class='ss_sp_sc_to'> 
        <td class="ss_label ss_label_adult"> 
         &nbsp; 
        </td> 
        <td class="ss_label ss_label_child"> 
         &nbsp; 
        </td> 
        <td class="ss_label ss_label_inf"> 
         &nbsp; 
        </td> 
        </table> 

我能想到這樣做的唯一途徑,是顯示:無動態地向還沒有得到更多的類的人?這有道理嗎?

非常感謝

回答

0

應該隱藏這些元素有多個類名,其中具有被隱藏的元素只有一個類名。所以,這個表達式應該工作:

$(".ss_label").filter(function(){ 
    return $(this).attr("class") == "ss_label"; 
}).css("display","none"); 
  1. 所有.ss_label元素被選中
  2. 所有,它的類屬性包含不超過ss_label被保留,其他被忽略的元素。
  3. 剩下的元素被分配一個display屬性,其值爲none

小提琴:http://jsfiddle.net/QGSsG/

+0

什麼$( '[CLASS = 「ss_label」]')隱藏()?請注意,類(Name)屬性可以在單個類名稱「ss_label」之前/之後包含額外的空格/製表符/等,因此您應該在比較之前對其進行修剪。 – biziclop

+0

@biziclop根據顯示的源代碼,沒有空格。由於HTML是通過API返回的,我不認爲'class'屬性不一致。當我使用你的建議時,我得到:'$(「.ss_label」)。filter(function(){return/^ \ s * ss_label \ s * $ /。test(this.className)})。hide(); ' –

相關問題