2009-07-23 16 views
1
<div id="first"> 
    <div id="here">...</div> 
</div> 
<div id="second"> 
    <div id="here">...</div> 
</div> 

jquery:jquery-wie Kind ID zu erkennen?

$("#second #here").click(function(){}); 

wie jquery schreiben zu erkennen, wenn ich den zweiten Klick?

Antwort

5

Dies ist die falsche Frage, weil Sie keine doppelten IDs in einem Dokument haben sollen. Eine ID ist wie die Sozialversicherungsnummer eines Elements. Sie können nicht mehrere Elemente gleich nennen, denn wenn Sie dann Javascript anweisen, ein Element nach ID zu finden, wird es fürchterlich verwirrend sein, dass es mehrere gibt und Sie unerwartete Ergebnisse erhalten. Der Grund, warum ID-Lookups so schnell sind, wie sie sind, ist, dass der Browser eine Hash-Tabelle mit ID-> Element- haben kann, die verstößt, dass das Verständnis eine schlechte Übung ist, um es gelinde auszudrücken.

Wenn Sie mehrere Elemente aufweisen, die alle von der gleichen „Art“ sind, ist die richtige Praxis Klasse sie:

<div id="first"> 
    <div class="here">...</div> 
</div> 
<div id="second"> 
    <div class="here">...</div> 
</div> 

So können Sie tun:

$('#first').find('div.here'); 

Oder:

$('div.here', '#second'); 

Oder:

$('#first div.here'); 

Welcher würde alles zurückgeben, was Sie erwarten, dass sie zurückkehren.

0

This ist das, was Sie suchen, aber wie Paolo sagte, Sie können nicht doppelte IDs haben. Wenn Sie Dinge stylen, verwenden Sie eine Klasse.

Verwandte Themen