2015-09-24 8 views
10

Come $ (this.hash) funziona in jQuery? Ho presupposto che questo script dovesse funzionare in questo modo - se clicco per collegarmi con i ticket href mostrerà i tag div con id. Ma non funziona.

var search = $("#switcher").find("a"), 
    hotels = $("#find").children("div").hide(); 

search.on('click', function (e) { 

    $(this.hash).show() 
    e.preventDefault() 
}); 
+0

essere che il div ha la stessa href di un exemple per un href come questo Ticket 1 div deve essere così

Diptox

risposta

30

this.hash legge l'attributo href di this, e ottiene la parte della URL che inizia con #. Quindi, se l'ancora si presenta come:

<a href="someURL#foobar"> 

this.hash sarà #foobar. Quando quindi usi $(this.hash).show(), è equivalente a fare $("#foobar").show(), quindi mostrerà l'elemento con id="foobar".

+0

Dove è 'this.hash' documentate? Google dà questa pagina. –

+0

@ MarkoAvlijaš https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash – Barmar

+1

Non dovresti cercare 'this.hash', perché dipende da cosa' questo' è. Devi cercare nella documentazione del tipo di elemento HTML appropriato. In questa domanda, 'this' è un' HTMLAnchorElement'. Ma in molte applicazioni, usiamo 'location.hash'. – Barmar