73 votes

fonction jquery get the id/value of LI after click

<ul id='myid'>
  <li id='1'>First</li>
  <li id='2'>Second</li>
  <li id='3'>Third</li>
  <li id='4'>Fourth</li>
  <li id='5'>Fifth</li>
</ul>

Comment puis-je alerter l'id de l'élément li cliqué (tout ce qui peut remplacer l'id peut être une valeur ou autre chose fonctionnera également).
aidez-nous
merci d'avance
Dave

0 votes

Essayez d'utiliser event.target.id api.jquery.com/event.target

148voto

karim79 Points 178055
$("#myid li").click(function() {
    alert(this.id); // id of clicked li by directly accessing DOMElement property
    alert($(this).attr('id')); // jQuery's .attr() method, same but more verbose
    alert($(this).html()); // gets innerHTML of clicked li
    alert($(this).text()); // gets text contents of clicked li
});

Si vous parlez de remplacer l'ID par quelque chose :

$("#myid li").click(function() {
    this.id = 'newId';

    // longer method using .attr()
    $(this).attr('id', 'newId');
});

Démonstration ici. Et pour être juste, vous auriez dû d'abord essayer de lire la documentation :

0 votes

Comment faire pour que cela fonctionne sans jquery ?

14voto

vikkun Points 4017

Si vous modifiez un peu votre code html, supprimez les identifiants.

<ul id='myid'>  
<li>First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
<li>Fifth</li>
</ul>

Alors le code jquery que vous voulez est...

$("#myid li").click(function() {
    alert($(this).prevAll().length+1);
});​

Il n'est pas nécessaire de placer des identifiants, il suffit de continuer à ajouter des éléments li.

Jetez un coup d'œil à Démonstration

Liens utiles

0 votes

Merci Shivik, mais l'id est déjà défini. Et j'ai obtenu la réponse que je cherchais, dans la première réponse. Merci encore

1voto

Sandeep Mukherjee Points 117

Vous pouvez obtenir la valeur du li respectif en utilisant cette méthode après le clic

HTML:-

<!DOCTYPE html>
<html>
<head>
    <title>show the value of li</title>
    <link rel="stylesheet"  href="pathnameofcss">
</head>
<body>

    <div id="user"></div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <ul id="pageno">
    <li value="1">1</li>
    <li value="2">2</li>
    <li value="3">3</li>
    <li value="4">4</li>
    <li value="5">5</li>
    <li value="6">6</li>
    <li value="7">7</li>
    <li value="8">8</li>
    <li value="9">9</li>
    <li value="10">10</li>

    </ul>

    <script src="pathnameofjs" type="text/javascript"></script>
</body>
</html>

JS:-

$("li").click(function ()
{       
var a = $(this).attr("value");

$("#user").html(a);//here the clicked value is showing in the div name user
console.log(a);//here the clicked value is showing in the console
});

CSS:-

ul{
display: flex;
list-style-type:none;
padding: 20px;
}

li{
padding: 20px;
}

1voto

user2983066 Points 48

J'ai essayé d'implémenter le même mécanisme, mais je n'arrive pas à obtenir la valeur. Voici le code :

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
    $('#face li').click(function(){
alert($(this).attr('value'));
});
</script>
 ......

 <section id="judgment">
<ul id="face">
    <li value="1"><img src="resources/img/rossa.jpg"></li>
    <li value="2"><img src="resources/img/gialla.jpg"></li>
    <li value="3"><img src="resources/img/verde.jpg"></li>
</ul>
 </section>

-3voto

Si vous avez plusieurs li à l'intérieur d'un li élément alors ceci va définitivement vous aider, et je l'ai vérifié et ça marche....

<script>
$("li").on('click', function() {
          alert(this.id);
          return false;
      });
</script>

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