JQUERY: Einen bestimmten Bereich nach einer ID durchsuchen

yeronimo

Erfahrenes Mitglied
Hi,

ich würde gerne mit Jquery einen bestimmtes DIV nach einer ID durchsuchen, ohne das die Suche dabei außerhalb des DIV's liegende elemente mit einbezieht.
Also:

Code:
//hier außerhalb koennen noch elemente liegen die ids haben aber nicht durchsucht werden sollen
<div>
//hier liegen elemente die alle ids haben und die durchsucht werden sollen
</div>
//hier koennen auch elemente liegen die nicht durchsucht werden sollen

Ich möchte also gerne ID xyz im inneren eines vorher angegebenen DIV's finden.

Hoffe dabei kann mir jemand helfen :-)

Besten Dank, Gruß
Ron
 
Die Frage ist aber, warum? IDs dürfen auf der ganzen Seite nur 1x benutzt werden. Für mehrmaliges Benutzen werden Div-Classes eingesetzt. Also ist die Einschränkung unnötig.

mfg chmee
 
Muss nicht unbedingt die ID sein, ich baue gerade ein Plugin für TinyMce, mit dem man Bausteine einfügen, einstellugnen ändern usw kann.
Im Moment bin ich dabei, die Einstellungsgeschichet umzusetzen und dafür muss ich in einem Baustein nach einem bestimmten element suchen und da die attribute abändern.
Im Moment wird jeder baustein als DIV eingesetzt (div mit einer eindeutigen ID (fortlaufend, je nach anzahl der auf der Seite vorhandenen Bausteine), einer Klasse Brick und im Rel Tag die eigentliche BausteinID aus der Datenbank), jetzt kann es natürlich sein, das baustein xyz auf der Seite 2 x eingefügt wird -> d.h. gleicher Inhalt im DIV, aber das DIV ist eindeutig identifizierbar.
Um die einzelnen Einstellungen jetzt abzuändern, muss ich nach irgendwas suchen(z.B. einer Bildbreite oder einer TabellenHöhe), da die Elemente aber exakt gleich sind (Baustein 2x) muss ich den irgendwie eindeutig identifizieren und das geht aj irgendwie nur, wenn ich weiß wo ich suchen muss, denn innerhalb dieses Bereiches wird es nur einmal auftauchen.

Besten Dank, gruß
Ron
 
Such doch erstmal das bekannte Div und dann darin

Also wenn:
HTML:
<div id="seiteEins">
  <div id="Remote> .. </div>
</div>
<div id="seiteZwei">
  <div id="Remote> .. </div>
</div>
dann eben:
HTML:
$("#SeiteEins:contains('#Remote')").css("width", "200px");
oder
$("#SeiteEins:has(#Remote)").addClass("test");

sorry, das ist jetzt schnell hingeschlunzt (kann also fehlerhaft sein, aber sinngemäß sollte es so aussehen). Ich erkenne das eigentliche Problem nicht. Entweder man hangelt sich hin (erstmal das Hauptdiv finden und den Inhalt durchsuchen) oder eben gleich mit den Selektoren das Richtige ansprechen, im "schönsten-schlimmsten" Fall regex zu Rate ziehen.

http://docs.jquery.com/Selectors

mfg chmee
 
Ahoi,

das sieht schonmal recht vielversprechend aus! Teste es gleich mal und meldm ich dann mit meinem Ergebnis :-)

Besten Dank, Gruß
Ron
 
Ich möchte also gerne ID xyz im inneren eines vorher angegebenen DIV's finden.
Der Vollständigkeit halber:
Javascript:
$("#outter #inner")
Gibt dir alle Elemente mit der ID "inner" innerhalb aller Elemente mit der id "outter".
Oder wenn dein outter-Div bekannt ist:
Javascript:
outter.find("#inner")
Ich denke aber das chmee das mit
oder eben gleich mit den Selektoren das Richtige ansprechen
meinte.
 
Moin,

danke erstmal zuer Ergänzung.
Habe grad etwas damit rumgespielt, konnte es aber irgendwie noch nicht so ganz testen, da ich noch eine kkleine Frage zu JSON habe, bevor ich das anwenden kann.
ist es möglich, aus einem aus JSON heraus, die Keys zu bekommen ?

Code:
			var testSettings = {"t1":{
									"list":{
											"width":30,
											"height":20
											},
									"list2":{
											"width":10,
											"height":10
											}
									}
								};

in diesem Fall also "list2" und "list2", das muss mit in die Abfrage rein, als Vergleichswert um dann die einzelnen werte in diesem Objekt zu vergleichen und notfalls abzuändern.

das würde ich dann so versuchen:
Code:
$("#"+brickId+" #"+testSettings.t1[0])

testSettings.t1[0] steht hierbei füer list.


Besten Dank, Gruß
Ron
 
Eine Frage habe ich doch noch, da ich versuche das alles so dynamisch wie möglich zu lassen, hab ich das bisher so gemacht:
Code:
			for(var key in testSettings[brickId]) {
				console.log("KEY: "+key);
				var testCont = testSettings[brickId][key];
				console.log('KEYOBJECT: '+testCont);
				console.log('KEYINHALT: '+testCont[1]);
			
			}
edit chmee - kleinen Tippfehler nachgebessert

um halt einfach nur die Methode mit der ObjectID aufzurufen, dann holt er sich den passenden key, dann das erste object dazu und fängt an die Wert (s.o. width, height...) mit dem element auf der seite abzugleichen.

Ich komme bis zu dem Punkt (KeyObject) wo er das object kriegt, aber den Inhalt kriege ich nicht ohne explizit anzugeben das ich .width z.b. möchte.
Kann ich da nicht irgendwie durchiterieren ?

Besten Dank, Gruß
Ron




//edit
ok, habe es einfach mit 2 keyschleifen gelöst, wenn jemand eine bessere idee hat - ich bin für alles offen :-)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück