J'essaie d'obtenir la valeur de l'élément très suivant de l'élément actuel/sélectionné par exemple voici la liste

<ul>
<li class="abc selected"><a href="www.test.com">test</a> </li>
<li class="abc"><a href="www.test1.com">test1</a> </li>
<li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>

À partir du code ci-dessus, j'essaie d'obtenir la valeur de la balise "a" qui est très proche du li sélectionné, dans le cas ci-dessus, j'essaie d'obtenir la valeur d'une balise qui est test1 et cette balise "a" se trouve dans le li très suivant après celui sélectionné.

J'ai essayé d'utiliser le jQuery ci-dessous mais il récupère le résultat vide. De l'aide

var linktext1= jQuery(".selected").next("li a").text();
alert (linktext1);
5
Abbasi 18 mars 2019 à 05:25

2 réponses

Meilleure réponse

La chaîne de sélection passée à .next filtrera l'élément suivant s'il ne correspond pas à la chaîne de sélection. Mais l'élément suivant est un li, pas un a, donc .next('li a') ne fonctionnera pas.

Utilisez plutôt .next("li").find('a') :

var linktext1 = jQuery(".selected").next("li").find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="abc selected"><a href="www.test.com">test</a> </li>
  <li class="abc"><a href="www.test1.com">test1</a> </li>
  <li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>

Dans cette situation particulière, cependant, il n'est pas nécessaire qu'un sélecteur li passe à .next, car ce qui est .selected sera un li, donc n'importe lequel de ses frères et sœurs sera être aussi li :

var linktext1 = jQuery(".selected").next().find('a').text();
console.log(linktext1);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="abc selected"><a href="www.test.com">test</a> </li>
  <li class="abc"><a href="www.test1.com">test1</a> </li>
  <li class="abc"><a href="www.test2.com">test2</a> </li>
</ul>
4
CertainPerformance 18 mars 2019 à 02:28

Je pense que vous devriez supprimer "li a" et cela fonctionne. Ci-dessous le code

var linktext1= jQuery(".selected").next().text();
alert (linktext1);

Voici l'exemple jsfiddle

0
dmcshehan 18 mars 2019 à 02:32