我正在切换'tr.subCategory1'
及其兄弟.RegText
。同时我试图将它的ID存储在数组中,如list_Visible_Ids[$(this).attr('id')] = $(this).css('display') != 'none' ? 1 : null;
(当我崩溃时,我需要在其ID位置的数组中存储'null'
,如果我展开,我需要存储我需要存储{ {1}}在其ID位置)。但每次1
显示alert($(this).css('display'))
。我怎么处理这个?因此,当我折叠或展开时,它只存储block
。
1
答案 0 :(得分:0)
您不是切换tr
本身,只切换其兄弟姐妹(类.RegText
和.VolumeRegText
)。因此,在将状态存储在数组中时,必须检查这些是否可见。为此,您可以在其中一个兄弟姐妹身上使用.is(":hidden")
。点击功能将如下所示
$('tr.subCategory1')
.css("cursor", "pointer")
.attr("title", "Click to expand/collapse")
.click(function() {
$(this).siblings('.RegText').toggle();
var isHidden = $(this).siblings('.VolumeRegText').toggle().is(':hidden');
list_Visible_Ids[$(this).attr('id')] = !isHidden ? 1 : null;
});
对其余代码也有很多评论。在
$('tr[@class^=RegText]').hide().children('td');
跳过.children('td')
,因为您没有使用此选项。
list_Visible_Ids = [];
应使用var
声明。
<小时/> 循环显示
idsArray
,您正在检查this != "" || this != null)
,该&&
应该使用||
而不是$.each(idsArray, function() {
if (this != "" && this != null) {
$('#' + this).siblings('.RegText').toggle();
list_Visible_Ids[this] = 1;
}
});
。
$.each()
使用@
函数而不是常规JavaScript for循环也没有意义
<小时/> 您似乎也在使用旧版本的jQuery,因为在version 1.3中不推荐使用选择器中的{{1}}。