Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [jquery] recuperare indice dell'elemento cliccato

    Buongiorno a tutti.
    All'interno di un form ho la seguente situazione (ometto alcuni dettagli per semplicità):

    codice:
    <input type="file" /> <a>...</a> | <a class=link1>...</a>
    
    <input type="file" /> <a>...</a> | <a class=link1>...</a>
    
    <input type="file" /> <a>...</a> | <a class=link1>...</a>
    
    ...
    <input type="file! /> <a>...</a> | <a class=link1>...</a>
    Insomma, un'infinità di quella triade di elementi. Mi interesserebbe ottenere, cliccando sul link con class=link1, il suo indice: se scelgo il primo otterrò 0, se scelgo il secondo 1, il terzo 2 e così via.
    Dopo diverse ricerche ho scoperto che (anche qui dettagli omessi per semplicità):

    codice:
    $( a ).click( ...
         var index = $( this ).index( $( .link1 ) );
    restituisce sempre 0 per il primo, -1 per gli altri; non riesco a spiegarmi il motivo.
    Sapreste illuminarmi? Come sempre un "grazie" in anticipo per la disponibilità.

  2. #2
    Non so a cosa ti serve l'indice, considera che per spostarti nel dom puoi usare prev(), next(), etc.
    Comunque prova così:
    codice:
    var index = $( this ).index( $(".link1") );
    o meglio, visto che il click lo fai sui a:

    codice:
    var index = $( this ).index( $("a") );

  3. #3
    prova
    If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.
    Codice PHP:
    <!DOCTYPE html>
    <
    html>
    <
    head>
      <
    style>
    div background:yellowmargin:5px; }
    span color:red; }
    </
    style>
      <
    script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
        <span>Click a div!</span>
    <div>First div</div>
    <div>Second div</div>
    <div>Third div</div>
    <script>
    $("div").click(function () {
      // this is the dom element clicked
      var index = $("div").index(this);
      $("span").text("That was div index #" + index);
    });
    </script>
    </body>
    </html> 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Come accennato da whisher, ho erroneamente invertito i termini!
    La formula giusta è

    codice:
    $("div").index(this);
    Ringrazio tutti per gli spunti risolutivi!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.