Cómo cambiar el atributo de título de un elemento usando jQuery

Tengo un elemento de entrada de formulario y quiero cambiar su atributo de título. Esto tiene que ser fácil como un pastel, pero por alguna razón no puedo encontrar cómo hacerlo. ¿Cómo se hace esto, y dónde y cómo debería estar buscando cómo hacerlo?

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 luego analiza el marcado y crea objetos DOM de varios tipos que contienen propiedades inicializadas con los valores de los atributos. En los objetos DOM, como un simple HTMLElement , casi siempre quiere 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 que no haya una propiedad equivalente que lo complemente. Dado que el title realmente existe como una propiedad de lectura / escritura en muchos HTMLElement s, debemos aprovecharlo.

Puede leer más sobre la diferencia entre atributos y propiedades aquí o aquí .

Con esto en mente, manipulemos ese title

Obtener o establecer la propiedad del title un elemento sin jQuery

Como el title es una propiedad pública, puede configurarlo 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 jQuery:

Obtener o establecer la propiedad del title un elemento con jQuery (v1.6 +)

jQuery introdujo un nuevo método en v1.6 para obtener y establecer propiedades. Para establecer la propiedad del title 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 documentación API de prop() para jQuery.

Si realmente no desea usar propiedades, o está usando una versión de jQuery anterior a v1.6, entonces debe seguir leyendo:

Obtener o establecer el atributo de title un elemento con jQuery (versiones <1.6)

Puede cambiar el atributo de title con el siguiente código:

 $('#yourElementId').attr('title', 'your new title'); 

O recuperarlo con:

 var elementTitle = $('#yourElementId').attr('title'); 

Consulte la documentación de la API de attr() para jQuery.

En los diálogos modales de jquery ui, debe usar esta construcción por alguna razó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 puedes encontrar todas las funciones básicas en los Documentos de jQuery , aunque odio el formato.

Otra opción, si lo prefiere, sería obtener el elemento DOM del objeto jQuery y usar los accesadores DOM estándar en él:

 $("#myElement")[0].title = "new title value"; 

La “forma jQuery”, como lo mencionaron otros, es usar el método attr (). Consulte la documentación de API para attr () aquí .

 jqueryTitle({ title: 'New Title' }); 

para el primer título:

 jqueryTitle('destroy'); 

https://github.com/ertaserdi/jQuery-Title

Si está creando un div e intenta agregarle un title .

Tratar

 var myDiv= document.createElement("div"); myDiv.setAttribute('title','mytitle');