2012-04-27 19 views
1

我有一個帶有severl jqGrids的頁面,但一次只能看到一個。我想要一個簡單的函數來隨時返回哪一個可見。有一些像這樣的功能,這將顯示哪些div的可見:如何確定可見jqGrid網格的ID?

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

有沒有這樣的事情,可以通過頁面上的所有jqGrids解析?

謝謝!

回答

3

你可能需要像下面

$("table.ui-jqgrid-btable:visible").attr('id'); 

如果沒有網格是在桌子上,你會得到undefined值。如果更多,因爲一個網格是可見的,你會得到第一個的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將所有可見電網的id數組:

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 
+0

很不錯的感謝! – 2012-04-30 13:57:01

+0

@jeffery_the_wind:不客氣! – Oleg 2012-04-30 13:57:25

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