Me gustaría saber qué selectores están disponibles para estos atributos de datos que vienen con HTML5.
Tomando esta pieza de HTML como ejemplo:
<ul data-group="Companies">
<li data-company="Microsoft"></li>
<li data-company="Google"></li>
<li data-company ="Facebook"></li>
</ul>
¿Hay selectores para obtener:
- Todos los elementos con
data-company="Microsoft"abajo"Companies" - Todos los elementos con
data-company!="Microsoft"abajo"Companies" - En otros casos, es posible usar otros selectores como "contiene, menor que, mayor que, etc.".

Respuestas:
Busque en jQuery Selectors : contiene es un selector
Aquí hay información sobre : contiene selector
fuente
$('div[data-col="1"][data-row="2"]')¿Esto seleccionará el div donde data-col es igual a 1 y data-row es igual a 2, o seleccionará en cualquiera de esos?.attr('data-something', 'value')para ver la actualización en el HTML. Según stackoverflow.com/questions/6827810/…datala llamada?$('#element').data('something')jQuery UItiene un:data()selector que también se puede usar. Ha existido desde la versión 1.7.0 parece.Puedes usarlo así:
Obtenga todos los elementos con un
data-companyatributoObtenga todos los elementos donde sea
data-companyigualMicrosoftObtener todos los elementos donde
data-companyno es igualMicrosoftetc ...
Una advertencia del nuevo
:data()selector es que debe establecer eldatavalor por código para que se seleccione. Esto significa que para que funcione lo anterior, definir eldataHTML no es suficiente. Primero debes hacer esto:Esto está bien para aplicaciones de una sola página donde es probable que lo use
$(...).data("datakey", "value")de esta manera o de otras formas similares.fuente
:data()selector o el.data()método?jsFiddle DemojQuery proporciona varios selectores (lista completa) para que las consultas que está buscando funcionen. Para responder a su pregunta "En otros casos, es posible utilizar otros selectores como" contiene, menor que, mayor que, etc. ". También puede usar contiene, comienza y termina con para ver estos atributos de datos html5. Vea la lista completa arriba para ver todas sus opciones.
La consulta básica se ha cubierto anteriormente, y el uso de la respuesta de John Hartsock será la mejor opción para obtener todos los elementos de la compañía de datos o para obtener todos, excepto Microsoft (o cualquier otra versión de
:not).Para expandir esto a los otros puntos que está buscando, podemos usar varios meta selectores. Primero, si va a hacer múltiples consultas, es bueno almacenar en caché la selección principal.
A continuación, podemos buscar empresas en este conjunto que comiencen con G
O quizás compañías que contienen la palabra suave
También es posible obtener elementos cuyas coincidencias finales de atributos de datos
fuente
Solución JS pura / vainilla (ejemplo de trabajo aquí )
En querySelectorAll debe usar un selector CSS válido (actualmente Level3 )
PRUEBA DE VELOCIDAD (2018.06.29) para jQuery y Pure JS: la prueba se realizó en MacOs High Sierra 10.13.3 en Chrome 67.0.3396.99 (64 bits), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64 -poco). La siguiente captura de pantalla muestra los resultados del navegador más rápido (Safari):
PureJS fue más rápido que jQuery, aproximadamente un 12% en Chrome, un 21% en Firefox y un 25% en Safari. Curiosamente, la velocidad para Chrome fue de 18.9M de operación por segundo, Firefox 26M, Safari 160.9M (!).
Entonces el ganador es PureJS y el navegador más rápido es Safari (¡más de 8 veces más rápido que Chrome!)
Aquí puede realizar pruebas en su máquina: https://jsperf.com/js-selectors-x
fuente