jqGrid ottiene “th” e “thead” usando jQuery

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")