我有一个包含severl jqGrids的页面,但一次只能看到一个。我想要一个简单的函数来返回哪一个随时可见。是否有这样的函数,它会显示哪些div是可见的:
$('div').each(function(){
if($(this).is(':visible')){
alert($(this).attr('id'));
}
});
是否有类似的内容可以解析页面上的所有jqGrids?
谢谢!
答案 0 :(得分:3)
您可能需要以下内容
$("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
答案 1 :(得分:1)
据我所见,所有网格都包含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
});