显示:其中没有一个没有多于一个类

时间:2011-10-08 15:49:57

标签: jquery

我有这段HT​​ML代码,我希望 ss_label 显示:无,其值发件人:收件人:离开:返回:。最后3个有一个额外的ss_label_adult,ss_label_child和ss_label_inf类,我希望它们能够正确显示。

从API检索HTML,因此我无法改变它的方式。

<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>

我能想到这样做的唯一方法就是显示:none没有动态到没有更多类的那些?这有道理吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

应隐藏的这些元素具有多个类名,其中必须隐藏的元素只有一个类名。所以,这个表达式应该有效:

$(".ss_label").filter(function(){
     return $(this).attr("class") == "ss_label";
}).css("display","none");
  1. 选择了所有.ss_label个元素
  2. 保留其class属性不超过ss_label的所有元素,忽略其他元素。
  3. 为其余元素分配display属性,其值为none
  4. 小提琴:http://jsfiddle.net/QGSsG/