Me gustaría obtener todos los elementos/nodos en una página HTML que contenga atributos que comiencen con algo (una vez más, los nombres de atributos comienzan con algo, ¡no con sus valores!). Por ejemplo, TinyMCE tiene una tendencia de agregar atributos personalizados a los elementos que guarda, como "mce_style"
, "mce_href"
, "mce_bogus"
, etc. Me gustaría tener algo como el selector CSS3 para valores de atributo, [attr^="mce_"]
, pero no para los valores, el nombres de atributo.Cómo obtener todos los atributos HTML que comienzan con algo (los nombres de los atributos, * no * sus valores!)
Por supuesto, puedo iterar a través de todos los nodos DOM y sus atributos y verificarlos uno por uno, pero me pregunto si hay una manera más eficiente.
Por favor no me proporcione las respuestas específicas de TinyMCE, estoy bastante seguro de que hay una bandera que evitaría que TinyMCE guardara estos atributos, pero la pregunta es genérica.
Tengo la sensación de que vas a tener que iterar a través de cada elemento y mirar a través de cada uno de los atributos. Incluso 'document.querySelectorAll()' no tiene una opción 'attribute-name-begins-with'. Interesante pregunta. –
No sé nada sobre TinyMCE, pero si hay alguna forma de identificar elementos que tengan * any * tales atributos, entonces al menos puede limitar su búsqueda a un subconjunto primero, luego observe cada atributo del subconjunto, que sería mucho más rápido que mirar todo el dom. Es decir, ¿hay algún atributo que siempre se agregará a uno de tus objetivos? Si es así, busca eso primero. –
@jamietre Sí, en lo que respecta a TinyMCE, puede asumir, por ejemplo, ese 'mce_href' siempre se aplicará a elementos' a', por lo que puede restringir su búsqueda. Pero como dije en la última oración, no estoy buscando respuestas específicas de TinyMCE, preferiría tener una solución genérica, y a juzgar por las respuestas que obtuve hasta ahora, no hay otra manera que iterar a través de todos los elementos y sus atributos Pitty. – AsGoodAsItGets