如何确定可见的jqGrid网格的ID?

时间:2012-04-27 20:03:51

标签: javascript jquery jqgrid visible

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

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

是否有类似的内容可以解析页面上的所有jqGrids?

谢谢!

2 个答案:

答案 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
});