empieza - select name jquery
¿Hay un selector de comodines para los identificadores(id)? (9)
¿Por qué no simplemente asignas class = "instance"
a todos ellos y los seleccionas usando $(''.instance'')
?
Si tengo una cantidad desconocida de identificadores que comparten un esquema de nombres específico, ¿hay alguna manera de capturarlos todos a la vez usando jQuery?
// These are the IDs I''d like to select
#instance1
#instance2
#instance3
#instance4
// What do I need to add or how do I need to modify this jQuery selector in order to select all the IDs above?
("#instanceWILDCARD").click(function(){}
El atributo starts-with selector ( ''^=
) funcionará para sus ID, así:
$("[id^=instance]").click(function() {
//do stuff
});
Sin embargo, considere dar a sus elementos una clase común, por ejemplo (me rompa) .instance
, y use ese selector:
$(".instance").click(function() {
//do stuff
});
Esas son identificaciones, pero puede hacer algo similar a:
$("[id^=''instance'']").click(...)
Sin embargo, eso es un poco caro: ayuda si se puede especificar a) el tipo de elemento ob) una posición general en el DOM, como por ejemplo:
$("#someContentDiv span[id^=''instance'']").click(...)
El selector [id^=''...'']
básicamente significa "encontrar un elemento cuya ID comienza con esta cadena, similar a id$=
(ID termina con esta cadena), etc.
Puede encontrar una lista completa en la página de jQuery Docs here .
Esta es la única respuesta correcta a la pregunta del comodín de identificación.
$(''[id*="Wild card in double quotes"]'')
Esto obtendrá "Wild card entre comillas dobles. ¡Y hay más!", Y también "Más BS delante de comodín. Comodín entre comillas dobles".
Debe usar comillas que sean diferentes a sus etiquetas ''[]''.
Me sorprende que nadie haya mencionado la creación de su propio selector de filtros (ampliando la funcionalidad del Selector de jQuery). Aquí he creado un selector de comodines al que he llamado "likeClass" y "likeId" que acepta cualquier cadena comodín y encontrará todos los elementos que coinciden (similar a la coincidencia Regex).
Código:
$.expr['':''].likeClass = function(match){
return $(''[class*=" ''+ match +''"]'');
};
$.expr['':''].likeId = function(match){
return $(''[id*=" ''+ match +''"]'');
};
Ejemplo de uso:
Ahora digamos que tiene varios elementos div con nombres similares como .content-1, .content-2, .content-n ... etc. y desea seleccionarlos. ¡Ahora es torta!
$ (''div: likeClass (content-)''); // Devuelve todos los elementos que tienen un Classname similar: content- *
o
$ (''div: likeClass (content-)''); // Devuelve todos los elementos que tienen una ID similar: content- *
Ah, sí, una cosa más ... puedes encadenarlo también. :)
$(''li:likeId(slider-content-)'').hide().addClass(''sliderBlock'').first().fadeIn(''fast'');
¡Disfrutar!
No necesita expr adicional o algo sofisticado si tiene jQuery
jQuery(''[class*="someclass"]'').click(function(){
});
jQuery(''[id*="someclass"]'').click(function(){
});
Como se señaló: https://.com/a/2220874/2845401
Podemos hacerlo de esta manera:
$(document).ready(function () {
$(''[id*=btnOk]'').live("click", function () {
});
});
Si realmente desea unir clases, no identificadores, la sintaxis es un poco más complicada, ya que la clase puede tener múltiples valores.
// handle elements like <div class="someclass1"></div>
$(''[class^="someclass"]'').click(function() {
// do stuff
});
// handle elements like <div class="foo someclass1"></div>
$(''[class*=" someclass"]'').click(function() {
// do stuff
});