272 votes

Comment modifier l'attribut title d'un élément à l'aide de jQuery

J'ai un élément d'entrée de formulaire et je veux changer son attribut title. Cela devrait être simple comme bonjour, mais pour une raison ou une autre, je ne trouve pas comment faire. Comment cela se fait-il, et où et comment dois-je chercher pour savoir comment faire ?

541voto

Cory Points 37551

Avant d'écrire le moindre code, examinons la différence entre les attributs et les propriétés. Les attributs sont les paramètres que vous appliquez aux éléments dans votre fichier Balisage HTML ; le navigateur analyse ensuite les balises et crée des objets DOM de différents types qui contiennent les éléments suivants propriétés initialisé avec les valeurs des attributs. Sur les objets DOM, tels qu'un simple HTMLElement il est presque toujours souhaitable de travailler avec son propriétés et non son attributs collection.

La meilleure pratique actuelle est d'éviter de travailler avec des attributs à moins qu'ils ne soient personnalisés ou qu'il n'y ait pas de propriété équivalente pour les compléter. Depuis que les title existe en effet en tant que système de lecture/écriture propriété sur de nombreux HTMLElement nous devrions en profiter.

Pour en savoir plus sur la différence entre les attributs et les propriétés, cliquez ici. aquí o aquí .

Dans cette optique, manipulons que title ...

Obtenir ou définir la valeur title propriété sans jQuery

Desde title est une propriété publique, vous pouvez la définir sur n'importe quel élément du DOM qui la supporte avec du simple JavaScript :

document.getElementById('yourElementId').title = 'your new title';

La récupération est presque identique ; rien de spécial ici :

var elementTitle = document.getElementById('yourElementId').title;

C'est le moyen le plus rapide de changer le titre si vous êtes un fou de l'optimisation, mais puisque vous voulez que jQuery soit impliqué :

Obtenir ou définir la valeur title propriété avec jQuery (v1.6+)

jQuery a introduit une nouvelle méthode dans la version 1.6 pour obtenir et définir des propriétés. Pour définir la propriété title sur un élément, utiliser :

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

Si vous souhaitez récupérer le titre, omettez le deuxième paramètre et capturez la valeur de retour :

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

Consultez le site prop() Documentation de l'API pour jQuery.

Si vous vraiment ne veulent pas utiliser de propriétés, ou que vous utilisez une version de jQuery antérieure à la v1.6, alors vous devriez lire la suite :

Obtenir ou définir la valeur title attribut avec jQuery (versions <1.6)

Vous pouvez modifier les title attribut avec le code suivant :

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

Ou le récupérer avec :

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

Consultez le site attr() Documentation de l'API pour jQuery.

6 votes

Si cette réponse n'est pas bien construite, aucune ne l'est. ET elle est aussi précise que bien construite. +1... (oh, et aussi ton nom est génial, parce que c'est le mien :) même orthographié de la même façon !)

0 votes

@VoidKing : J'ai tendance à revisiter et à actualiser les réponses qui deviennent populaires (dont je n'ai que quelques unes). J'essaie de fournir tout ce que j'espérerais trouver si je faisais des recherches ou si je posais une question. Je suis heureux que vous l'ayez trouvée !

0 votes

@Cory Eh bien, pour être honnête, je cherchais quelque chose d'autre (c'était un peu long, mais je cherchais s'il y avait un moyen de styliser la boîte de titre HTML par défaut). Je n'ai pas trouvé ce que je cherchais, mais j'ai vraiment admiré l'effort que vous avez mis dans cette réponse (vous avez montré les ressources, .js pur et jQuery, etc.) Quoi qu'il en soit, bonne réponse !

33voto

Igor Lacik Points 423

Dans les dialogues modaux de jquery ui, vous devez utiliser cette construction :

$( "#my_dialog" ).dialog( "option", "title", "my new title" );

3 votes

Sauveur ! Lorsque l'on utilise la réponse votée ci-dessus, le titre est modifié une fois, puis il ne change plus par la suite SAUF si l'on utilise l'option de titre dans la boîte de dialogue ! MERCI BEAUCOUP !

0 votes

Je suis content d'avoir lu les commentaires ;-) Si vous avez besoin de changer le titre plusieurs fois, vous devez le définir dans les options du dialogue.

0 votes

Je n'aurais jamais pensé que cela serait accepté autant de fois. Je suis très heureux que cela ait aidé :-)

22voto

womp Points 71924

Je crois

$("#myElement").attr("title", "new title value")

ou

$("#myElement").prop("title", "new title value")

devrait faire l'affaire...

Je pense que vous pouvez trouver toutes les fonctions de base dans la rubrique Docs jQuery Bien que je déteste le formatage.

7voto

Greg Campbell Points 10321

Une autre option, si vous préférez, serait d'obtenir l'élément DOM à partir de l'objet jQuery et d'utiliser les accesseurs DOM standard :

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

La "méthode jQuery", mentionnée par d'autres, consiste à utiliser la méthode attr(). Voir la documentation de l'API pour attr() aquí .

2voto

R Singh Points 21

Si vous créez un div et en essayant d'ajouter un title à elle.

Essayer

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X