Tengo el siguiente elemento:
<page-title xml:lang="x-default">Text</page-title>Necesito poder seleccionarlo por su atributo como una lista de etiquetas, que necesito seleccionar individualmente.
El problema es que no puedo seleccionar el elemento con:
page-title[xml:lang="x-default"]Como los dos puntos ":" parecen romper el atributo, ya que probablemente no sea un carácter válido para usar. Sé que puede usar selectores comodín para el valor del atributo, como * para contener y ^ para comenzar con, y así sucesivamente.
Mi pregunta es, ¿es posible crear un selector que use comodines no para el valor del atributo sino para el nombre del atributo en sí? como:
page-title[*lang="x-default"]¿Para un selector que obtendría un elemento con un nombre de atributo que contiene "lang" que tiene un valor de "x-default"?
¿Se puede hacer esto de alguna manera con JavaScript? También tengo jQuery disponible si esa fuera una opción.
Para escapar de un carácter en un selector jQuery/JS, puede usar \\ :
$('page-title[xml\\:lang="x-default"]').addClass('jquery'); // jquery document.querySelector('page-title[xml\\:lang="x-default"]').classList.add('native'); // native .jquery { color: #C00; } .native { text-decoration: underline; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <page-title xml:lang="x-default">Text</page-title>