jqGrid obtiene “th” y “thead” usando jQuery

¿Cómo puedo obtener el theader en un jqGrid usando jQuery?

Mi breve respuesta es: en lugar de seleccionar los elementos DOM que corresponden a los

elementos que estás buscando, debes usar

 $("#list")[0].grid.headers 

Devuelve la matriz de estos elementos DOM, corresponde a la

. La descripción larga de mi respuesta sigue.

Entiendo el motivo de tu pregunta. Si, por ejemplo, ha definido la parte base de jqGrid como

 

entonces $("#list") le da

con solo la parte “data” de la grilla sin encabezados . La parte principal de “datos” de la tabla se colocará dentro de algunos divs. Otros elementos de jqGrid se colocarán en los divs como tablas. La estructura de jqGrid (no completa) se verá como sigue:

 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 

(Aquí en la tabla utilicé los rownumbers: true , entonces hay th#list_rn , la primera columna tiene el nombre ‘Col1’, entonces hay th#list_Col1 y así sucesivamente)

Puede ver que la tabla de encabezado table.ui-jqgrid-htable puede tener dos subelementos

hijo: uno tr.ui-jqgrid-labels para los encabezados de columna y uno tr.ui-search-toolbar para filterToolbar .

Mi sugerencia para usted no es utilizar esta jerarquía relativamente compleja, sino usar otra forma oculta oculta en jqGrid. El código

 var gridDom = $("#list")[0]; 

obtener el elemento DOM del elemento de la tabla. Este elemento tiene una extensión importante que está hecha por jqGrid. Esto es gridDom.p que contiene todos los parámetros de jqGrid. Otra extensión importante es gridDom.grid con propiedades importantes bDiv , cDiv , hDiv , fbDiv , fhDiv , uDiv y también cols , footers , topDiv y headers . Te sugiero que uses gridDom.grid.headers array como la mejor forma de recibir una lista de

elementos de los encabezados de las columnas de la grilla (desde la fila

correcta).

Si thead un thead y th en el DOM, se puede seleccionar. ¿Tienes un ejemplo de lo que estás tratando de hacer?

Tratar:

 jQuery("thead", "#mygrid")