Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114

    JQuery selezionare tutto tranne un elemento

    Ho la necessità di selezionare tutti gli elementi della pagina tranne quelli appartenenti ad un div. Ho provato (tra i tanti tentativi) con il seguente codice:

    codice:
    $('body').children().not('div#not_selected').fadeTo('slow', 0.2);
    ma il "not" non funziona e la selezione prende tutti gli elementi della pagina.
    Come si può risolvere il problema?

  2. #2
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    il :not() non è un metodo, è un selector e va usato diversamente, tipo così:

    codice:
    $('body').children(":not(div#not_selected)").fadeTo('slow', 0.2);

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    codice:
    $("*:not(div#not_selected)")

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Grazie per le risposte, ma purtroppo il problema persiste.

    $('body').children(":not(div#not_selected)").fadeT o('slow', 0.2);
    In realtà esiste anche il metodo not, comunque ho provato ad usare il codice postato ma il risultato non cambia, anzi ho scoperto un nuovo "bug": se come selettore CSS uso '#not_selected' il not non funziona come ho descritto prima (selezione di tutto), mentre se uso 'div#not_selected' non mi seleziona nulla.

    $("*:not(div#not_selected)")
    Il problema di questo è che funziona troppo ... prende tutti gli elementi della pagina, anche quelli dell'head (come script e metatag).

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Il problema di questo è che funziona troppo
    è cio che avevi specificato nel titolo, cmq puoi provare con uno di questi 2 metodi:

    codice:
    $("*:not(div#not_selected)","body")
    codice:
    $("body > *:not(div#not_selected)")

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Originariamente inviato da Vindav
    è cio che avevi specificato nel titolo, cmq puoi provare con uno di questi 2 metodi:
    Hai perfettamente ragione... potevo essere più preciso!

    Purtroppo anche gli ultimi due esempi non hanno avuto successo:
    - il primo riconosce il primo elemento del div da "saltare" ma tralascia il resto del contenuto e, soprattutto, modifica il resto della pagina (alcuni elementi spariscono ed altri non viene eseguita l'azione)
    - il secondo si comporta esattamente come i primi esempi

    Appena appare un ":not" o un ".not()" qualcosa si "inceppa"

  7. #7
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    hai ragione esiste anche il metodo

    ho provato a fare una prova con questo codice:
    codice:
    $("body *").not("div#not_sel").fadeTo('slow', 0.2);
    e a me funziona.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    a me funziona anche questo:

    codice:
    $("body > *:not(div#not_selected)")
    Forse dipende dalla tua pagina...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Originariamente inviato da Vindav
    Forse dipende dalla tua pagina...
    Lo penso anche io... il mio codice HTML incriminato è il seguente.
    (Il link commentato serve e viene aggiunto da javascript).
    Di fatto deve essere fatto il fade su tutta la pagina tranne sul contenuto del div#peopleList sul quale agirò a parte. Alla fine dei giochi deve rimanere senza fade solo l'elemento attivo (sul quale è stato eseguito il click) ed il link che serve a ripristinare tutto (quello che nel codice che segue è commentato ma che in quello reale "appare" grazie a JS).

    codice:
    <div id="container">
    	<div id="header">
    		<div class="max_size">
    			<ul>
    				[*]link
    				[*]link
    				[*]link
    			[/list]
    		</div>
    	</div>
    
    	<div id="content" class="max_size">
    		<h1 style="margin-top:15px;">Pagina di <span>prova</span></h1>
    		<div id="peopleList">
    		<ul class="people">
    			<li id="c1">
    				[img]images/img1.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c2">
    				[img]images/img1bw.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c3">
    				[img]images/img2.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c4">
    				[img]images/img3.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c5">
    				[img]images/img1bw.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c6">
    				[img]images/img1bw.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c7">
    				[img]images/img1bw.jpg[/img]
    				
    
    ciao</p>
    			
    			<li id="c8">
    				[img]images/img1bw.jpg[/img]
    				
    
    ciao</p>
    			
    		[/list]
    		</div>
    		
    	</div>
    	<div id="footer" class="max_size">
    		<div style="clear: both;"></div>
    	</div>
    </div>

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    posta anche il codice js che va a intercettare il click e "cerca" di applicare il fade

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.