web-dev-qa-db-fra.com

Comment obtenir la valeur textuelle d'un lien cliqué?

J'ai du texte correspondant dans différentes parties d'un document. Le premier est un ensemble de "balises" dans un tableau comme ceci:

<div id="my-div">
  <div><a href="#">tag 1</a></div>
  <div><a href="#">tag 2</a></div>
</div>

Ensuite, dans plusieurs autres parties du document, j'ai un élément caché après les éléments que je veux mettre en surbrillance lorsque le lien correspondant est sélectionné, comme suit:

<div class="hide-me">tag 1</div>

Ensuite, ma fonction de clic est comme ceci:

$('#my-div a').click(function() {
  var txt = $(this).text();
  console.log(txt);
});

La sortie est une chaîne vide, mais je ne sais pas pourquoi.

28
95slug

votre code semble être correct, essayez celui-ci aussi.

$('#my-div a').click(function(e) {
  var txt = $(e.target).text();
  console.log(txt);
});
66
Umair Jabbar

Dans votre cas, je n’utiliserais pas le texte du lien, car il est possible que cela change à l’avenir (c’est-à-dire que vous deviez traduire votre site Web). La meilleure solution consiste à ajouter un attribut personnalisé aux liens:

<div id="my-div">
  <div><a href="#" sectionId="someId1">tag 1</a></div>
  <div><a href="#" sectionId="someId2">tag 2</a></div>
</div>

Et puis mettez l'id de la balise cachée là, de sorte que vous et avec:

$('#my-div a').click(function() {
  var sectionId = $(this).attr('sectionId');
  $('#' + sectionId).show();
  return false; // return false so the browser will not scroll your page
});
0
Jakub Konecki