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

    Selezionare elemento da variabile con Jquery

    Buongiorno,
    ho il seguente codice:
    codice:
    <ul>
    	[*]Vai al sito[*]Apri
        	<ul style="display:none;">
            	[*]Vail al sito
            	[*]Vail al sito[/list]
    	[*]Vai al sito[/list]
    Quello che vorrei fare è creare una funzione, utilizzando Jquery, che mi permetta di selezionare il "<ul>" immediatamente sotto al link "Apri", per modificarne il CSS e mostrarlo.
    Non mi è possibile dare un id all'ul in questone, perchè è generato da php e quindi avrei bisogno di una funzione generica in Jquery per selezionarlo.

    Avevo pensato ad una cosa del genere:
    codice:
    function apri(ogg) {
    	$("ul > "+ogg).css("display", "block");
    };
    Ma non funziona... Chiedo, pertanto, un modo per poter inserire una variabile all'interno del selettore $() di Jquery.

    Spero di essere stato sufficientemente chiaro, altrimenti, sono sempre a disposizione per eventuali chiarimenti.

    Grazie.
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  2. #2
    a prescindere dal fatto che potresti arrivarci così:
    codice:
    $( 'ul li ul' )
    oppure puoi lavorare con i children (http://docs.jquery.com/Traversing/children#expr ) o con .find (http://docs.jquery.com/Traversing/find#expr).

    tipo

    codice:
    function apri(selector) { // selector = 'li ul'
      return $('ul').find(selector);
    }
    Davide

  3. #3
    Il problema è che il this passato dalla funzione "apri();" si riferisce all'A, che non contiene il <ul> che voglio far apparire, quindi non è possibile utilizzare "children" e "find", perchè l'ul in questione non è figlio del collegamento specificato con this.
    In più, non posso raggiungerlo con $( 'ul li ul' ), perchè, come avevo specificato, il contenuto è creato dinamicamente con PHP e quindi, molto probabilmente, l'ul in questione potrebbe non trovarsi esattamente nella posizione specificata, ma qualche li e ul sotto o sopra.

    C'è un qualche sistema per selezionare l'elemento sotto, senza che sia un discendente diretto del link, ma solo l'elemento immediatamente successivo?
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che si realizzi!!! - Albert Einstein -

  4. #4
    guarda che nel mio codice non c'è nessuna menzione a this.
    SE il DOM è caricato, ovvero dopo il window.onload / $(document).ready event, allora la scrittura $('ul li ul') resituisce un array di elementi. PHP non c'entra più nulla. e nemmeno this nella funzione come l'ho scritta io. Semmai il problema è se ci sono più ul o più ul li ul, allora l'array di elementi che jQuery restituisce ha lunghezza > 1, ergo devi capire a quale elemento riferirti
    Davide

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 © 2024 vBulletin Solutions, Inc. All rights reserved.