Respuestas:
Antes de escribir cualquier código, analicemos la diferencia entre atributos y propiedades. Los atributos son las configuraciones que aplica a los elementos en su marcado HTML ; el navegador analiza el marcado y crea objetos DOM de varios tipos que contienen propiedades inicializadas con los valores de los atributos. En objetos DOM, como un simple HTMLElement
, casi siempre desea trabajar con sus propiedades , no con su colección de atributos .
La mejor práctica actual es evitar trabajar con atributos a menos que sean personalizados o no haya una propiedad equivalente para complementarlo. Como title
existe de hecho como una propiedad de lectura / escritura en muchos HTMLElement
s, debemos aprovecharla.
Puede leer más sobre la diferencia entre atributos y propiedades aquí o aquí .
Con esto en mente, manipulemos eso title
...
title
propiedad de un elemento sin jQueryComo title
es una propiedad pública, puede configurarla en cualquier elemento DOM que lo admita con JavaScript simple:
document.getElementById('yourElementId').title = 'your new title';
La recuperación es casi idéntica; nada especial aquí:
var elementTitle = document.getElementById('yourElementId').title;
Esta será la forma más rápida de cambiar el título si eres un fanático de la optimización, pero como querías que jQuery participara:
title
propiedad de un elemento con jQuery (v1.6 +)jQuery introdujo un nuevo método en v1.6 para obtener y establecer propiedades. Para establecer la title
propiedad en un elemento, use:
$('#yourElementId').prop('title', 'your new title');
Si desea recuperar el título, omita el segundo parámetro y capture el valor de retorno:
var elementTitle = $('#yourElementId').prop('title');
Consulte la prop()
documentación de la API para jQuery.
Si realmente no desea usar propiedades, o si está usando una versión de jQuery anterior a v1.6, entonces debería seguir leyendo:
title
atributo de un elemento con jQuery (versiones <1.6)Puede cambiar el title
atributo con el siguiente código:
$('#yourElementId').attr('title', 'your new title');
O recuperarlo con:
var elementTitle = $('#yourElementId').attr('title');
Consulte la attr()
documentación de la API para jQuery.
En los cuadros de diálogo modales de jquery ui, debe usar esta construcción:
$( "#my_dialog" ).dialog( "option", "title", "my new title" );
Yo creo
$("#myElement").attr("title", "new title value")
o
$("#myElement").prop("title", "new title value")
debería hacer el truco ...
Creo que puede encontrar todas las funciones principales en jQuery Docs , aunque odio el formato.
Otra opción, si lo prefiere, sería obtener el elemento DOM del objeto jQuery y usar accesores DOM estándar en él:
$("#myElement")[0].title = "new title value";
La "forma jQuery", como mencionan otros, es usar el método attr () Consulte la documentación de la API para attr () aquí .
jqueryTitle({
title: 'New Title'
});
para el primer título:
jqueryTitle('destroy');
Como una adición a la respuesta @ Cᴏʀʏ, asegúrese de que el título de la información sobre herramientas no se haya configurado manualmente en el elemento HTML. En mi caso, la clase span para la información sobre herramientas ya tenía un texto de título fijo, debido a esto mi función JQuery$('[data-toggle="tooltip"]').prop('title', 'your new title');
no funcionaba.
Cuando eliminé el atributo de título en la clase de intervalo HTML, jQuery estaba funcionando.
Entonces:
<span class="showTooltip" data-target="#showTooltip" data-id="showTooltip">
<span id="MyTooltip" class="fas fa-info-circle" data-toggle="tooltip" data-placement="top" title="this is my pre-set title text"></span>
</span>
Debe codificarse:
<span class="showTooltip" data-target="#showTooltip" data-id="showTooltip">
<span id="MyTooltip" class="fas fa-info-circle" data-toggle="tooltip" data-placement="top"></span>
</span>