【问题标题】:jQuery: Show/Hide table rowsjQuery:显示/隐藏表格行
【发布时间】:2013-01-28 21:19:04
【问题描述】:

我试图通过为 tr 元素的 class 属性分配一个数字 id 来显示隐藏表行

我已对其进行了编码,以便显示此编号 id 的第一个实例,而其余的则隐藏。单击第一个实例应该会显示具有相同 ID 的其余行。

这是我到目前为止的代码,但是它无法显示其余的行:

以下代码在document.ready函数中

var ids = ["1","2","3","4","5","6","7","8","9","10"];

        var i;

        for (i = 0; i < ids.length; i++) {


             $("." + ids[i]).hide()

             $("." + ids[i] + ":first").show()

             $("." + ids[i] + ":first").click(function () {

                if( $("." + ids[i] + ":last").css('display') == 'none') {

                    $("." + ids[i]).show()

                } else {

                     $("." + ids[i]).hide()

                     $("." + ids[i] + ":first").show()

                }

            });


        }

html 只是

<tr class="<%= @current_id %>">
<td>test data</td>
<td>test data</td>
</tr>

【问题讨论】:

标签: jquery


【解决方案1】:

你有很多错误:

$("." + ids[i] + ":first")
to
$("." + ids[i]).first()

然后

if( $("." + ids[i] + ":last").css('display') == 'none')

to 

if( $("." + ids[i]).last().is(':visible'))

然后使用";" 关闭所有方法:

$("." + ids[i]).show()

$("." + ids[i]).show();

.1.2 等类也无效,您应该将其替换为 .1-row

那么,实际上您选择的是所有 tr 而不是 td 元素,您应该执行以下操作:

$("."+ids[i]).children('td').first().....ect /*this select the first td of the tr*/

【讨论】:

  • 好的,我已经完成了所有这些,但仍然没有显示其他行
  • @Dave 我更新了答案,你选择 tr childs 吗?这 $("." + ids[i]) 正在选择 tr 元素而不是 td,请使用 $(". "+ids[i]).children('td').first() 例如
  • 你需要用你的替换它,检查答案
猜你喜欢
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
相关资源
最近更新 更多