Javascript vers Jquery, ajoutez du texte dans la saisie onclick

Comment puis-je modifier ce code javascript vers JQuery?

<script type="text/javascript"> function addTextTag(text){ document.getElementById('text_tag_input').value += text; } </script> 

Lorsqu'un utilisateur clique sur le texte du lien automatiquement est ajouté en entrée.

C'est le HTML:

 <input id="text_tag_input" type="text" name="tags" /> <div class="tags_select"> <a href="#" onClick="addTextTag('text1, '); return false">text1</a> <a href="#" onClick="addTextTag('text2, '); return false">text2</a> <a href="#" onClick="addTextTag('text3, '); return false">text3</a> </div> 

Voici la démo: http://jsfiddle.net/Smartik/j8qGT/

 <script type="text/javascript"> $(function() { $('.tags_select a').click(function() { var value = $(this).text(); var input = $('#text_tag_input'); input.val(input.val() + value + ', '); return false; }); }); </script> 

Et votre balisage:

 <input id="text_tag_input" type="text" name="tags" /> <div class="tags_select"> <a href="#">text1</a> <a href="#">text2</a> <a href="#">text3</a> </div> 

Et voici une démo en direct .

Sans javascript en ligne, complètement jQuery: http://jsfiddle.net/j8qGT/3/

JavaScript:

 $('a').click(function(){ $('#text_tag_input').val($('#text_tag_input').val()+$(this).html()+', '); });​ 

HTML:

 <input id="text_tag_input" type="text" name="tags" /> <div class="tags_select"> <a href="#">text1</a> <a href="#">text2</a> <a href="#">text3</a> </div>​ 

Quelques notes sur les étapes:

  • Sélectionnez déjà l'entrée où définir la valeur afin d'éviter la nécessité de la ré-interroger tout le temps: var $tagsInput = $('#text_tag_input'); . Le sélecteur d'étiquette hash si le sélecteur ID dans jQuery remplace document.getElementById

  • Lier un événement de clic avec .click () pour les liens dans l'élément avec la classe "tags_select": `$ ('. Tags_select a'). Cliquez (…);` `

  • Pour ajouter la valeur, au lieu de lutter contre les méthodes jquery pour obtenir et définir la valeur de l'entrée, obtenez l'élément $tagsInput natif avec [0] sur $tagsInput et utilisez la += notation de la value de la propriété.

Voici le code:

 // select already you input element for re-use var $tagsInput = $('#text_tag_input'); // bind a click event to links within ".tags-select" element $('.tags_select a').click(function() { // append link text to the input field value $tagsInput[0].value += $(this).text(); return false; }); 

DEMO

Autres lectures:

  • Sélecteurs jQuery
  • Liez un événement de clic avec .click ()