with starts name ends jquery regex jquery-selectors

starts - selector jquery regex



selector ends with jquery (3)

Dudo que Regex sea la forma más eficiente de hacerlo, pero ¿agregó el selector de expresiones regulares a su código? :regex no es un selector integrado, por lo que debe incluir el fragmento en la parte superior de su artículo en su secuencia de comandos.

Quiero seleccionar algunos elementos html con nombre que empiece por btn (btn1, btn2 ..)

¿Cuál es la forma más eficiente de hacer eso?

Intento http://james.padolsey.com/javascript/regex-selector-for-jquery/ pero no logro hacerlo funcionar

$('':regex(class,btn[0-9]'').hover( function(){ // not selecting any "btn" class }


Si desea seleccionar todos los elementos que tienen un atributo de class que comienza con la palabra btn :

$( ''[class^=btn]'' )

Si desea usar el atributo de name lugar, solo cambie el atributo:

$( ''[name^=btn]'' )

Usando el valor del atributo starts-with selector: http://api.jquery.com/attribute-starts-with-selector/


Lo que está haciendo es seleccionar todos los elementos con la clase de btnX donde X podría ser 0-9.

Para hacer esto con el atributo de nombre que comienza con "btn", debe usar:

$('':regex(name,^btn)'').hover(function() { ... }, function() { ... });

- EDIT para incluir la demostración jsFiddle de trabajo -

Además, no olvides poner esto en tu página:

jQuery.expr['':''].regex = function(elem, index, match) { var matchParams = match[3].split('',''), validLabels = /^(data|css):/, attr = { method: matchParams[0].match(validLabels) ? matchParams[0].split('':'')[0] : ''attr'', property: matchParams.shift().replace(validLabels,'''') }, regexFlags = ''ig'', regex = new RegExp(matchParams.join('''').replace(/^/s+|/s+$/g,''''), regexFlags); return regex.test(jQuery(elem)[attr.method](attr.property)); }