Puede aproximarse a algo como esto por iteración a través de los atributos de cada elemento en el recipiente, y ver si el nombre del atributo coincide con una expresión regular para lo que busca:
Por ejemplo, in this jsFiddle, I am looking for li
elements with the data-media-tv
and data-media-dvd
properties.
Puede personalizar la expresión regular para devolver solo lo que desea ver. ¿Desea solo ver los elementos que tienen un data-media- * (como en su pregunta)? Here you go.
Tenga en cuenta que esto no es exactamente escalable. Debido a que estamos iterando a través de cada elemento en la página, y comprobando cada atributo individual (pero volviendo temprano si se encuentra), esto puede y probablemente sea lento para páginas grandes.
¡Limite esto SOLAMENTE al contenedor que desea buscar, o solo a los elementos que desea recorrer! Si ejecuta esto en document.body
, recorrerá cada elemento de la página, no seré responsable si su casa se quema como resultado. :)
Aquí es función-zado:
function attrMatch(elements, regexp) {
// Iterate through all passed-in elements, return matches
var matches = elements.filter(function(li) {
var numAttr = li.attributes.length;
for(x=0;x<numAttr;x++) {
var attr = li.attributes[x];
return attr['name'].test(regexp);
}
});
return matches;
};
En elements
, sólo pasan en los elementos que desea comprobar, posiblemente seleccionado a través de $$
. Si desea verificar todos los elementos en un elemento contenedor, reemplace elements
con container
y container.getChildren()
en cada instancia de element
, arriba.
¿Se puede publicar algún ejemplo html? – Daedalus
Parece que tendrá que agregar algún otro atributo para unir los elementos. – Niemand
Una implementación de selector de CSS compatible generaría * ningún elemento * porque no es válido ... – BoltClock