1

我有一个带有多个 jqGrids 的页面,但一次只能看到一个。我想要一个简单的函数来返回随时可见的函数。是否有这样的功能,可以显示哪些 div 是可见的:

$('div').each(function(){
    if($(this).is(':visible')){
        alert($(this).attr('id'));
    }
});

有没有这样的东西可以解析页面上的所有 jqGrids?

谢谢!

4

2 回答 2

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
于 2012-04-27T20:13:39.330 回答
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
});
于 2012-04-27T20:09:30.250 回答