我有一个带有多个 jqGrids 的页面,但一次只能看到一个。我想要一个简单的函数来返回随时可见的函数。是否有这样的功能,可以显示哪些 div 是可见的:
$('div').each(function(){
if($(this).is(':visible')){
alert($(this).attr('id'));
}
});
有没有这样的东西可以解析页面上的所有 jqGrids?
谢谢!
我有一个带有多个 jqGrids 的页面,但一次只能看到一个。我想要一个简单的函数来返回随时可见的函数。是否有这样的功能,可以显示哪些 div 是可见的:
$('div').each(function(){
if($(this).is(':visible')){
alert($(this).attr('id'));
}
});
有没有这样的东西可以解析页面上的所有 jqGrids?
谢谢!
您可能需要以下内容
$("table.ui-jqgrid-btable:visible").attr('id');
如果桌子上没有网格,您将获得undefined
价值。如果多个网格可见,您将获得第一个网格的 id。
要拥有所有可见网格的 id 数组,您可以使用以下代码
var ids = $.map($("table.ui-jqgrid-btable:visible"), function(value) {
return value.id;
});
// now we have all ids in the array
alert(ids.join()); // display all as comma-separated
grid
您可以通过对expandos的测试使上述代码更安全:
var ids = $.map($("table.ui-jqgrid-btable:visible"), function(value) {
if (value.grid) { return value.id; }
});
// now we have all ids in the array
alert(ids.join()); // display all as comma-separated
据我所见,所有网格都用 div 类包裹ui-jqgrid
。所以试试下面的东西,
$('div.ui-jqgrid:visible').each(function () {
alert(this.id); //above would return the gview_<table_id> or gbox_<table_id> or
//something_<table_id>
alert($(this).find('.ui-jqgrid-btable').attr('id')); //should return table_id
});