Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6

    Selezione tramite jQuery di un id

    Buongiorno, non riesco a risolvere quello che sta diventando un rompicapo.
    Ho un piccolo, molto giovane e senza velleità alcuna, motore di ricerca che dopo ogni tasto cliccato dall'utente nel campo di ricerca verifica le corrispondenze nel DB con la stringa inserita. Tramite $.ajax(). php sul server.
    Tutto funziona bene e ne sono contento perché è il primo progetto con JS e jQuery.



    La callback di $.ajax() mi colloca una stringa di <li id=...> in successione tra i tag <ul id='***'>[/list], appositamente predisposti nella pagina:

    $.ajax({...
    ...

    success: function(result){
    $('#table').html(result);
    }

    Risposta dello script PHP sul server: una successione di elementi simili a questo

    <li id=252>1971 - 1973

    con id e valori differenti.

    Fin qui funziona.

    Il problema arriva quando provo a selezionare l'ID associato alla voce[*] cliccata dall'utente.

    Su qualunque elemento della lista clicco, mi fornisce sempre il primo id dell'elenco. Ecco il codice responsabile della selezione che non mi riesce:

    $(document).ready(function(){
    $('ul#elenco').click(function(){
    var id = $('ul#elenco > li').attr("id");
    alert(id);
    });

    });

    L' HTML predisposto sulla pagina per accogliere i[*]:

    <ul id="elenco">[/list]

    C'è qualcuno che può indicarmi la soluzione, spiegarmi cosa succede? Perché mi fornisce sempre e solo il primo della lista? Come se non vedesse tanti <li id>, ma un <ul> con l'id del primo[*] della lista.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Quello che ottieni con il comando $('ul#elenco > li') immagino sia una collezione di oggetti, quindi per recuperare le informazioni di ogni singolo "li" devi ciclare la collezione.

  3. #3
    Per come è scritto non hai nessun riferimento al[*] su cui si è cliccato, e come ha detto Vindav quello che hai è la collezione di tutti i[*].

    Prova a gestire il click sui singoli[*] anziché su <ul>...

    codice:
    $(document).ready(function(){
    $('ul#elenco > li').click(function(){ /// Il click è sui singoli[*]
    var id = $(this).attr("id"); /// Questo è il singolo[*] su cui si è fatto click
    alert(id);
    });

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6
    Vindav. Ho risolto, senza cicli.
    Come detto, sperimento JS e jQ da pochi giorni e mi è bastato leggere le caratteristiche complete di .attr() per individuare il problema. Ho inserito una classe comune a tutti i[*].
    IlProfessore. Leggo adesso il tuo suggerimento e ti confermo che è quello che ho fatto, risolvendo.
    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    io avevo capito che volessi recuperare tutti gli id, è ovvio che se ti serve solo quello cliccato il cliclo è inutile

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.