我有一个类似下面例子的表。
<tr>
<td>Content #1a</td>
<td>Content #1b</td>
</tr>
<tr>
<td>Content #2a</td>
<td>Content #2b</td>
</tr>
一个Array值,其值与表行数相同。
var arr = [ 0, 0 ]
目前我将它们链接起来,所以当点击一行时,它会隐藏/显示该行,更新相应的数组值,然后将该数组保存为cookie。
var $tr = $('tbody tr').on('click', function () {
var i = $tr.index(this);
if(arr[i] == 0) {
arr[i] = 1;
// hide it
}
else {
arr[i] = 0;
// show it
}
$.cookie("CName", arr, { expires: 1, path: '/'});
});
问题是我不知道如何反向操作,所以将cookie转换为数组,然后根据数组值显示/隐藏相应的行。
var arr = $.cookie("CName").split(',');
这个想法是让它记住用户在页面加载时隐藏了哪些行。
由于
答案 0 :(得分:1)
$.each(arr,function(index,el){
var tr = $('tbody:nth-child('+index+')');
if(el == 1)
$(tr).show();
else
$(tr).hide();
});
这似乎隐藏了每一秒TR而不管其中设置的是什么 阵列。
问题是nth-child从1开始将该行更改为
var tr = $('tbody tr:eq(' + index + ')');
这将解决它。