Estoy usando un marco personalizado basado en Primefaces/JSF para mi página. Desafortunadamente, establece de forma predeterminada muchos atributos de título no deseados, por lo que ahora mi último recurso es un JavaScript breve que está incrustado en cada página que borra el atributo de título de cada elemento (que tiene un conjunto, al menos).
¿Existe un método más inteligente que simplemente iterar a través de todos los elementos y establecer el atributo en nulo para cada uno?
Puede orientar solo los elementos que tienen atributos de target mediante el uso de un selector de presencia de atributos ( [title] ):
for (const element of document.querySelectorAll("[title]")) { element.removeAttribute("title"); } Eso implica crear una NodeList provisional, que podría evitar con un recorrido de árbol recursivo. El recorrido recursivo del árbol suena complicado, pero no lo es particularmente:
function removeTitle(element) { element.removeAttribute("title"); for (const child of element.children) { removeTitle(child); } } removeTitle(document.documentElement);estuve tentado de tener
if (element.title) { // `title` is a reflected attribute element.removeAttribute("title"); }en lugar de solo
element.removeAttribute("title"); ... pero aunque no lo parezca, element.title es una llamada de función (el title es una propiedad de acceso), por lo que probablemente no tenga sentido hacer la verificación. (Probablemente también lo estoy pensando demasiado).