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.
votre code semble être correct, essayez celui-ci aussi.
$('#my-div a').click(function(e) {
var txt = $(e.target).text();
console.log(txt);
});
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
});