2012-04-27 6 views
1

severl jqGridsを持つページがありますが、一度に1つしか表示されません。私は、いつでも見えるものを返すシンプルな関数が必要です。表示されているdivを示すだろう。このようないくつかの機能は、そこにある:可視のjqGridグリッドのIDはどのようにして決定できますか?

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

は、ページ上のすべてのjqGridsを解析することができ、このようなものはありますか?

ありがとうございます!

答えて

3

あなたはテーブルの上にあるグリッドなし場合はundefined値を取得しますおそらく次

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

ようなものが必要。 1つ以上のグリッドが見える場合は、最初のグリッドのIDを取得します。あなたはあなたがgrid expandosためのテストで上記のコードはより安全にすることができ、次のコード

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 

を使用することができ、すべての可視グリッドの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

は非常に素晴らしい感謝! –

+0

@jeffery_the_wind:あなたは大歓迎です! – Oleg

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 
}); 
関連する問題