我试图通过为tr元素的class属性指定一个数字id来显示隐藏表行
我对它进行了编码,以便显示此数字id的第一个实例,而其余部分则被隐藏。单击第一个实例应显示具有相同ID的其余行。
这是我到目前为止的代码,但它无法显示其余的行:
以下代码位于document.ready function
中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>
答案 0 :(得分: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*/