【问题标题】:Hide / Show Specific Table Rows隐藏/显示特定表格行
【发布时间】:2012-08-22 03:03:40
【问题描述】:

我需要能够隐藏表格中默认的特定行。

基本上,这是电子商务网站中的“我的购物车”页面,这里的想法是能够显示多个相同产品的所有实例。

示例:假设您选择数量有 3 只山羊 - 在显示的产品下方有一个链接,上面写着“显示所有实例”。这意味着如果您要单击锚点,则显示您想要的总共 3 只山羊的每个实例。

这是我正在做/试图实现的目标的图像:

所以,我遇到的问题是如何在 HTML 中结构化地将“显示所有实例”行放在一起。在父行下创建另一个表?我想到了这一点,并遇到了如何用正确的产品定位“实例”的问题。

到目前为止,这是我的 HTML 代码 - 该代码仅显示了我为实现每个产品行所做的工作:

<div class="item-section">
        <span class="section-heading">Smiles Gifts</span>
        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="border-bottom: 1px dotted #666666;padding: 0 0 5px 0;" >
            <tr>
                <th class="col-1">&nbsp;</th>
                <th class="col-2">Qty</th>
                <th class="col-3">Frequency</th>
                <th class="col-4">Card Type</th>
                <th class="col-5">Edit/Remove</th>
                <th class="col-6">Subtotal</th>
            </tr>
        </table>
        <table cellpadding="0" cellspacing="0" border="0" width="100%">
            <tr>
                <td class="item col-1 clearfix">
                    <table cellpadding="0" cellspacing="0" border="0">
                        <tr>
                            <td>
                                <img src="images/cart_dummy_image.jpg" alt="" />
                            </td>
                            <td>
                                <span class="product">World Food Programme</span>
                                <!-- LINK TO SHOW OTHER INSTANCES -->
                                <a class="show-instances" href="#">Show all instances</a>
                            </td>
                        </tr>
                    </table>
                </td>
                <td class="col-2"">1</td>
                <td class="col-3">One Off</td>
                <td class="col-4">&nbsp;</td>
                <td class="col-5">
                    <a href="#" class="blue-anchor">Edit</a>
                    <a href="#">Remove</a>
                </td>
                <td class="col-6">$45.00</td>
            </tr>
</div>

希望提供的信息足够详细,但如果没有任何问题,请告诉我,我会尽力提供帮助!

【问题讨论】:

  • 在 html 代码中添加更多详细信息,以便在其中放置按钮以切换行。这个想法只是将所有具有相同产品的行设置为等于产品的 id。然后当你点击切换按钮时,使用 $('.id1').toggle();
  • “所以,我遇到的问题是如何在结构上将“显示所有实例”行放在 HTML 中。” - 你问的是 html结构,或者关于如何使用jQuery进行隐藏和显示? (或两者兼而有之?)
  • 主要是 HTML 结构 - 如果你能提供帮助,那就太好了。
  • @ThaiTran 为您更新了 HTML 评论

标签: jquery html css


【解决方案1】:

对于HTML,只需为每个条目添加更多行,然后您需要在 java-script 中进行一些调整以隐藏和显示这些行。我更喜欢jQuery,因为它可以优雅地处理DOM

这里是完成任务的简单方法,(只发布 javascript

var link = $('<a class="show-instances" href="#">Show all instances</a>');
$('tr.main').hide().first().find('.product').parent().remove('a').append(link);
$('tr.main').first().show();

$('table').on('click', 'a.show-instances', function() {
    var selectedClass = $(this).closest('tr.main').attr('class').split(' ');
    $('.' + selectedClass[1]).not(':has("a.show-instances")').toggle();
    return false;
});​

看看工作的DEMO

【讨论】:

  • 非常感谢这个人!我现在给你的唯一问题是如何让“显示实例”向下滑动而不是显示?我尝试用 .slideToggle 替换 .toggle 但效果不佳。有什么建议吗?
  • @Filth 好的,这是块级元素的问题,试试updated fiddle。但是您需要处理对齐方式。
猜你喜欢
  • 2016-12-13
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多