2010-02-19 10 views
54

mi pregunta es la siguiente:elemento html cuales identificación comienza

tengo código HTML en varias páginas, en cada uno de ellos he usado un jqGrid (rejilla jQuery) para la visualización de algunos datos. Sabía que en cada una de esas páginas, el elemento que contiene el JQgrid se llama "LIST_xxx". Ahora necesito hacer un javascript que tome ese elemento "LIST_XXXX" en cada página y haga algunas cosas. ¿Cómo podría buscar un elemento por ID pero sólo conociendo su parte inicial (de la ID, como he mencionado anteriormente):

$('#list_[XXXX]')... --> The part surrounded by [] is variable on each page, i want to discriminate that. 

espero i sido claro. Gracias.

Respuesta

110

Trate

$('div[id^="list_"]') 

Se debe trabajar

+0

Disposición mucho mejor en esa referencia que la documentación jquery. –

+0

Esto funciona bien, gracias ... Lo usé para encontrar una identificación que termine con un valor específico como if ($ ('div [id $ = "' + val + '"]'). Length> 0) ejecutar algo; – raphie

+0

bien, Funciona bien para identificaciones ID de controles anteriores. Cómo hacer que funcione para escenarios como que estoy teniendo controles con tales IDs "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city", y así sucesivamente, y quiero contar todos los elementos que tengan IDs como "txt _ * _ city " –

7

Dale a ese elemento un nombre de clase común o algún otro atributo que puedas consultar.

+0

Hola, gracias por su respuesta, el problema con su sugerencia es que puede haber varias tablas que contengan JQgrid, por lo que podría haber: "LIST_customer", "LIST_carrier" ... y así sucesivamente. Y necesito seleccionar ambos basen solo en la parte ID inicial: "LIST_". – lidermin

+0

Lo entiendo, pero hacer que todos sean una clase List parece ser un enfoque más legible y descriptivo para mí. Para cada uno, siempre puedes usar el inicio con el selector en jquery como se muestra en otras respuestas. –

+0

@lidermin Lo que dice Yuriy debería funcionar. ¿Por qué no agrega una clase a sus controles como "lista" ya que tiene list_ como su prefijo? entonces cuando selecciones esa clase obtendrás cada uno de esos controles. Esta será la forma más eficiente de hacerlo. –

19

Es necesario utilizar el attribute starts with selector, así:

$('[id^=list_]').whatever() 
+0

bien, Funciona bien para identificaciones de controles anteriores simples. Cómo hacer que funcione para escenarios como que estoy teniendo controles con tales IDs "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city", y así sucesivamente, y quiero contar todos los elementos que tengan IDs como "txt _ * _ city " –

+0

Hola @Rajiv, bienvenido a stackoverflow. He respondido a la otra copia de tu comentario. –

Cuestiones relacionadas