Come posso ottenere theader
su un jqGrid usando jQuery?
La mia risposta breve è: invece di selezionare gli elementi DOM che corrispondono a
elementi che stai cercando dovresti usare
$("#list")[0].grid.headers
Restituisce la matrice di questi elementi DOM, corrisponde al
. Segue la lunga descrizione della mia risposta.
Capisco la ragione della tua domanda. Se per esempio hai definito la parte base di jqGrid come
quindi $("#list")
ti dà
con solo la parte “dati” della griglia senza intestazioni . La parte “dati” principale della tabella sarà posizionata all’interno di alcuni div. Altri elementi di jqGrid verranno posizionati nei div come tabelle. La struttura di jqGrid (non completa) sarà simile al seguente:
div.ui-jqgrid#gbox_list div.ui-jqgrid-view#gview_list div.ui-jqgrid-titlebar - caption div.ui-userdata#t_list - optional top toolbar div.ui-jqgrid-toppager#list_toppager - optional top pager div.ui-jqgrid-hdiv - all grid headers div.ui-jqgrid-hbox - (div.ui-jqgrid-hbox-rtl) if direction:"rtl" table.ui-jqgrid-htable thead tr.ui-jqgrid-labels - row with column headers (labels) th#list_rn - optional column header with row numbers th#list_Col1 - column header for the column name:"Col1" ... th#list_level - optional column header for some other special columns in case of usage TreeGrid the hidden columns of TreeGrid are: level, parent, isLeaf, expanded, loaded, icon tr.ui-search-toolbar - row for toolbar searching th th ... div.frozen-div.ui-jqgrid-hdiv - optional frozen headers table.ui-jqgrid-htable - table with frozen columns headers only ... div.ui-jqgrid-bdiv - div with the main grid data div table#list - table with the main grid data div.frozen-bdiv.ui-jqgrid-bdiv - optional div with the main grid data div table#list_frozen - table with the main grid data div.ui-userdata#tb_list - optional bottom toolbar div.ui-jqgrid-resize-mark#rs_mlist div.ui-jqgrid-pager#pager - the div with the pager
(qui nel tavolo ho usato i rownumbers: true
, quindi ci sono th#list_rn
, la prima colonna ha il nome ‘Col1’, quindi ci sono th#list_Col1
e così via)
È ansible vedere che la tabella di intestazione table.ui-jqgrid-htable
può avere due sottoelementi tr.ui-jqgrid-labels
: uno tr.ui-jqgrid-labels
per le intestazioni di colonna e uno tr.ui-search-toolbar
per filterToolbar
.
Il mio suggerimento per te non usa questa gerarchia relativamente complessa, ma usa un altro modo nascosto breve esistente in jqGrid. Il codice
var gridDom = $("#list")[0];
prendi l’elemento DOM dell’elemento tabella. Questo elemento ha alcune importanti estensioni che sono fatte da jqGrid. Questo sono gridDom.p
che contengono tutti i parametri di jqGrid. Un’altra importante estensione è gridDom.grid
con proprietà importanti bDiv
, cDiv
, hDiv
, fbDiv
, fhDiv
, uDiv
e anche cols
, footers
, topDiv
e headers
. Ti suggerisco di utilizzare la matrice gridDom.grid.headers
come il modo migliore per ricevere un elenco di
elementi dalle intestazioni delle colonne della griglia (dalla riga
corretta).
Se un th
e th
esiste sul DOM, può essere selezionato. Hai un esempio di ciò che stai cercando di fare?
Provare:
jQuery("thead", "#mygrid")