Suche nach div-id auf
Nehmen wir an ich habe folgende Struktur:
<div id="divid1">
<div id="divid2">
<div id="divid3">
</div>
<div id="divid4">
</div>
</div>
<div id="divid5">
</div>
</div>
Der obige code ist nur ein Beispiel, um zu erklären, das problem also nicht zahlen viel Aufmerksamkeit auf Sie.
Nun nehmen wir an, ich habe die folgende jQuery:
$("#divid1").click(function(){});
Nun.. Was ich will zu tun, ist das folgende:
- Wenn dieses Ereignis ausgelöst wird (D. H. der Benutzer klickt auf eine beliebige Stelle innerhalb des div mit der ID divid1) sagen Sie mir die ID des div-Sie befinden sich derzeit in. Wenn ich sage, die ID, die Sie in sind, ich meine die ID des div, die Sie tatsächlich geklickt haben, obwohl es im inneren
divid1
. Nehmen wir an, Sie haben tatsächlich geklickt innen divid4. Dieses Ereignis wird ausgelöst, weildivid4
innerhalbdivid2
innerhalbdivid1
Einschränkungen:
- Ich kenne keinen der IDs neben divid1. Das ist, weil ich bin die Generierung der IDs von den anderen divs dynamisch und es gibt keine Möglichkeit zu wissen, wie viele divs gibt es ODER wie Sie genannt werden.
InformationsquelleAutor James | 2011-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
jsFiddle hier
Ich verwendet
event.stopPropagation();
, sondern false zurückgeben, ist in der Tat einfacher. Check diese Frage, wenn Sie wissen möchten, was der Unterschied zwischen den beiden.InformationsquelleAutor Benjamin Crouzier
Siehe vollständige Quelle erfolgreicher test:
versuchen Sie ersetzen
this.id
für$(this).attr('id')
Das ist nicht sein problem....nichts falsch mit dem code
wahr. mein problem war, ich hatte keine Ahnung, was die "Konsole.log" war, wie Sie angenommen und ich war mit ihm, so kam es zurück mit einer Fehlermeldung. Ich würde vorschlagen, in der Zukunft Sie geben Beispiele mit Variablen und standard-Methoden statt vorausgesetzt, es gibt Leute die Protokolle verwenden (google erzählt mir, was es war)
console.log ist ziemlich standard. Bist du mit IE oder so etwas?
InformationsquelleAutor Calvin Froedge
ja, das ist richtig. Überprüfen Sie die neue Möglichkeit, die ich vorschlagen.
dies funktioniert auch, aber nur für 1 Ebene von verschachtelten divs. Ich brauche diese arbeiten für mehrere verschachtelte divs. Im obigen code-Beispiel, wenn ich wurden, um Sie anschließend in DIVID4, dein code gibt DIVID2, obwohl Sie geklickt haben innen 4, es geht nur unten, 1 Stufe in den code ein. Siehst du das dilemma, die ich habe? 🙁
ich denke, dass find() arbeiten, überprüfen Sie den geänderten code
InformationsquelleAutor zaoudis
return document.getElementById(obj.id).id;
?? Wenn du bereits die ID, warum sich das DOM-element wieder in seine ID?denn Sie passieren die angeklickte div, um die Funktion, auf diese Weise kann die Funktion prüfen, was die id des übergebenen Objekt ist
Vielen Dank für die Ausgaben der Zeit zu beantworten. diese Methode kann auch funktionieren, aber es ist nicht die Art, die ich suchte. Die divs dynamisch erzeugt werden, so will ich, um Sie so leicht wie möglich. Nochmals vielen Dank für die Anregung!
kein problem ^o^.
InformationsquelleAutor Kevin