我有一个(id="tblID")
从数据库填充的 HTML 表。这些行有一个 data 属性status
,它可以是"Y"
或"N"
只有"Y"
在页面加载时必须显示的行。在某处$(document).ready()
有这个调用:它应该通过传递"Y"
给来显示页面加载时的活动行showRowsByStatus
:
$("#tblID tr").each(function () {
showRowsByStatus("Y", $(this));
});
还有一个复选框Show Inactive Rows
,选中时将显示非活动行,未选中时将显示活动行。
$("#chkBox").change(function () {
if (this.checked) {
$("#tblID tr").each(function () {
showRowsByStatus("N", $(this));
});
}
else {
$("#tblID tr").each(function () {
showRowsByStatus("Y", $(this));
});
}
});
这是showRowsByStatus
方法的定义:
function showRowsByStatus(activeStatus, tr) {
if (tr.data("status") == activeStatus && tr.data("status") != undefined) {
tr.show();
}
if (tr.data("status") != activeStatus && tr.data("status") != undefined) {
tr.hide();
}
}
现在我面临的问题是,在页面加载时根本没有显示活动行,但是当我切换复选框时Show Inactive Rows
,这些行会按预期显示。
我在showRowsByStatus
方法中缺少什么?
我还发现style="display:none"
在页面加载时它被添加到所有行中。我检查了项目中的每个位置,但找不到任何将这种样式设置为这些行的东西。我试图.css("display","none !important")
隐藏和.css("display","block !important")
展示,但它没有帮助。所以我想我应该修复这个showRowsByStatus
方法。