2011-10-08 74 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(); ' –

相关问题