$( document ).ready(function() suchen und auslesen einer id
Juergen
- jquery
Hallo,
bräuchte nochmal kurz Eure Hilfe bitte.
ich möchte nach dem laden einer Seite eine Klasse mit dem Wert "in active" suchen und dort den Inhalt der id (id="box-7-1) "auslesen. irgendwie scheint er zwar mit if ($( document ).find("in active")){ die Klasse zu finden aber leider jedoch den Wett von id nicht
Grüße Jürgen
<li class="in active" id="box-7-1">
$( document ).ready(function() {
if ($( document ).find("in active")){
var test = $( document ).find('li.in active').attr('id');
// var test = $(this).attr('id');
console.log( "gefunden ===> "+test );
}else{
console.log( "nicht gefunden" );
}
});
@@Juergen
eine Klasse mit dem Wert "in active" suchen
Sowas gibt es nicht. Klassenbezeichner dürfen keine Leerzeichen enthalten.
<li class="in active" id="box-7-1">
Dieses Element gehört zwei Klassen an: "in" und "active".
irgendwie scheint er zwar mit if ($( document ).find("in active")){ die Klasse zu finden
Das glaube ich nicht. Zum einen siehe oben; zum anderen selektierst du keine Klassen, sondern Elementtypen. in
-Elemente und active
-Elemente dürften aber kaum welche zu finden sein.
LLAP 🖖
sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
ok du hast natürlich recht mit den zwei Klassen
es ist jedoch so das mit
if ($( document ).find("in active")){
alert('gefunden');
}else{
alert('nicht gefunden');
}
oder
if ($( document ).find("active")){
alert('gefunden');
}else{
alert('nicht gefunden');
}
"gefunden" ausgegeben wird
gut ich habe das aber in
if ($( document ).find("active")){
dennoch komme ich noch nicht drauf wie ich den Wert von der id im element li mit der class"active" auslesen kann
habe schon unzählige Dinge geändert ... komm einfach nicht drauf ich muss ja nicht nur li suchen sondern ein bestimmtes actives li
Grüße Jürgen
Hallo Juergen,
es ist jedoch so das mit
if ($( document ).find("in active")){ alert('gefunden'); }else{ alert('nicht gefunden'); }
"gefunden" ausgegeben wird
Ja, JQuery liefert immer ein Ergebnis. Aber nicht immer Elemente.
console.log($( document ).find("bla laber"))
dennoch komme ich noch nicht drauf wie ich den Wert von der id im element li mit der class"active" auslesen kann
Warum meinst du diesen Wert zu brauchen?
document.querySelectorAll("li.active")[0].getAttribute('id');
sollte genau das leisten, falls es nur genau ein li-Element mit dieser Klasse gibt. Ohne JQuery. Aber ich habe den Verdacht, du brauchst gar kein JavaScript.
Bis demnächst
Matthias
Hallo Matthias
document.querySelectorAll("li.active")[0].getAttribute('id');
sollte genau das leisten, falls es nur genau ein li-Element mit dieser Klasse gibt. Ohne JQuery. Aber ich habe den Verdacht, du brauchst gar kein JavaScript.
Warum querySelectorAll
verwenden wenn man nur ein Element möchte? Und getAttribute
braucht es auch nicht, da die id eines Elements auch direkt über die gleichnamige DOM-Eigenschaft gelesen werden kann.
var id = document.querySelector('li.active').id;
Viele Grüße,
Orlok
Hallo Orlok,
var id = document.querySelector('li.active').id;
Danke für die Hinweise.
Bis demnächst
Matthias
Hallo Orlok,
var id = document.querySelector('li.active').id;
Danke für die Hinweise.
Bis demnächst
Matthias
shit,
da ich verschachtelte Regsiterkarten habe
habe ich ja eine aktive Mutter-li und eine Tochter-li
kann ich irgendwie die zweite aktive li suchen?
Grüße Jürgen
document.querySelectorAll("li.active")[0].getAttribute('id');
sollte genau das leisten, falls es nur genau ein li-Element mit dieser Klasse gibt. Ohne JQuery. Aber ich habe den Verdacht, du brauchst gar kein JavaScript.
Hallo erstmal ein Dankeschön für die Antworten und Hiilfe
Doch ich brauche den Wert der ID wieso? Ich erstelle eine Seite mit php die dynamisch aufgebaut wird ich benutze auf dieser Seite verschachtelte Registerkarten. In diese Registerkarten lade ich via ajax bei onclick bestimmte Tabellen
Wenn ich die Seite das erste mal aufrufe ist eine bestimmte verschachtelte-Registerkarte aktiv Diese hat dann ein mit einer mir nicht bekannten id <div id=box-7-1></div>
Ich wollte nun nach dem erstmaligen Aufruf der Seite via jquery herausfinden welche Regsiterkarte <li> nun aktiv ist und aus dieser die zugehörige <div> box auslesen damit ich dann diese DIV Box mit ajax füllen kann
Klar könnte ich das auch mit php beim Laden der Seite schon erledigen... habe aber das ganze anders aufgebaut und möchte es nicht nochmal ändern
Grüße Jürgen
Du wirst doch sicher sowas haben wie ein <ul> für die Hauptnavigation und ein <ul> für die Subnavigation. Gib den beiden ul unterschiedliche Klassen und dann kannst Du gezielt suchen
var mainActive = $("ul.navMain li.active").attr(id),
subActive = $("ul.navSub li.avtive").attr(id)
und du hast die IDs der aktiven Tabs für Haupt- und Subnavigation. Wobei ich nicht weiß was attr() zurückgibt wenn es auf einem leeren Set aufgerufen wird (sprich: keine Subnavigation existiert oder kein li mit active Klasse da ist).
Hilft das ?
Gruß Rolf
Du wirst doch sicher sowas haben wie ein <ul> für die Hauptnavigation und ein <ul> für die Subnavigation. Gib den beiden ul unterschiedliche Klassen und dann kannst Du gezielt suchen
var mainActive = $("ul.navMain li.active").attr(id), subActive = $("ul.navSub li.avtive").attr(id)
und du hast die IDs der aktiven Tabs für Haupt- und Subnavigation. Wobei ich nicht weiß was attr() zurückgibt wenn es auf einem leeren Set aufgerufen wird (sprich: keine Subnavigation existiert oder kein li mit active Klasse da ist).
Hilft das ?
Gruß Rolf0
Hi Rolf
klar, das hilft bestimmt sehr
Guck jetzt noch Fußball und teste es dann gleich das sieht mir aber sehr logisch aus... das klappt dann bestimmt
Grüße und Danke Jürgen
Du wirst doch sicher sowas haben wie ein <ul> für die Hauptnavigation und ein <ul> für die Subnavigation. Gib den beiden ul unterschiedliche Klassen und dann kannst Du gezielt suchen
var mainActive = $("ul.navMain li.active").attr(id), subActive = $("ul.navSub li.avtive").attr(id)
und du hast die IDs der aktiven Tabs für Haupt- und Subnavigation. Wobei ich nicht weiß was attr() zurückgibt wenn es auf einem leeren Set aufgerufen wird (sprich: keine Subnavigation existiert oder kein li mit active Klasse da ist).
Hilft das ?
Gruß Rolf0
habe jetzt
$( document ).ready(function() {
console.log( "ready!" );
//var id = document.querySelector('li.active').id;
//var id = $("ul.navSub li.active").attr(id);
var id = $("ul.navSub li.active").attr(id);
console.log( "active id ===>"+id );
});
probiert. natürlich habe ich der Mutter-UL und den Tochter-UL's <ul> die Klassen navMain und navSub zugewiesen
jetzt bringt er jedoch
jquery-migrate-1.2.1.min.js:2 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
ich glaube aber doch das dies der nun richtige Weg ist mit den zwei Klassen
Grüße Jürgen
nur was hat das nun mit dem Fehler auf sich?
hat sich erledigt
mit
var id = $("ul.navSub li.active").attr('id');
ging es die '' hatten gefehlt
Danke nochmal