Mit JavaScript auf ID zugreifen
Hallo zusammen,
ich versuche gerade ein JavaScript umzubasteln. Leider schwerer als gedacht, da ich von JS kaum/keine Ahnung habe
Ich hänge derzeit an folgendem Problem:
Wie bekomme ich nun die "3" (egal ob von "p class" oder "span class") ausgelesen? Das "P-Objekt" ist bereits in der Variable copy erfasst - ich muss nur irgendwie an die Eigenschaften kommen.
Danke euch!
Grüße
Maik87
ich versuche gerade ein JavaScript umzubasteln. Leider schwerer als gedacht, da ich von JS kaum/keine Ahnung habe
Ich hänge derzeit an folgendem Problem:
<p class="address" id="3">
<span class="title">Testeintrag</span> <br><span class="id">3</span> <br>
</p>
Wie bekomme ich nun die "3" (egal ob von "p class" oder "span class") ausgelesen? Das "P-Objekt" ist bereits in der Variable copy erfasst - ich muss nur irgendwie an die Eigenschaften kommen.
Danke euch!
Grüße
Maik87
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 283689
Url: https://administrator.de/contentid/283689
Ausgedruckt am: 21.11.2024 um 16:11 Uhr
21 Kommentare
Neuester Kommentar
Hallo Maik87,
hiermit kommst du an den Text-Inhalt von <span class="id">3</span>, wenn es das war was du wolltest...
Grüße Uwe
-edit- wenn du stattdessen das Attribut des ersten Elements P-Elements meinst siehe @Arano ...
hiermit kommst du an den Text-Inhalt von <span class="id">3</span>, wenn es das war was du wolltest...
<script type="text/javascript">
var inhalt = document.getElementById('3').getElementsByClassName('id').innerText;
alert(inhalt);
</script>
-edit- wenn du stattdessen das Attribut des ersten Elements P-Elements meinst siehe @Arano ...
Hallo Maik87.
ist ungültig !
s. Universalattribut ID - selfHTML
Edit: Hm... naja gut, ab HTML5 geht wohl auch das
Auf den Werte des Attributs ID kannst du über das Attribut ID zugreifen wenn du das P als Objekt hast:
Erzeugt mir ein Popup mit dem Text "id3"
~Arano
id="3"
s. Universalattribut ID - selfHTML
Edit: Hm... naja gut, ab HTML5 geht wohl auch das
Auf den Werte des Attributs ID kannst du über das Attribut ID zugreifen wenn du das P als Objekt hast:
copy.id
<html>
<head>
<script type="text/javascript">
<!--
function init()
{
copy = document.getElementById("id3");
alert( copy.id );
}
-->
</script>
</head>
<body onload="init();">
<p class="address" id="id3">
<span class="title">Testeintrag</span> <br><span class="id">3</span>
</p>
</body>
</html>
~Arano
Zitat von @Maik87:
Aber wie oben schon geschrieben, stehe ich vor der Aufgabe, dass die 3 auch eine 4, eine 5, eine 6 und alles andere sein kann. "getElementById("id3")" klappt also leider nicht pauschal.
Wenn du sagst du hast das Objekt schon in einer Variablen, dann greifst du so wie Arano schon geschrieben hat auf die ID des Elementes zu.Aber wie oben schon geschrieben, stehe ich vor der Aufgabe, dass die 3 auch eine 4, eine 5, eine 6 und alles andere sein kann. "getElementById("id3")" klappt also leider nicht pauschal.
Wenn du das Objekt mit der Klasse address noch nicht in einer Variablen hast und es das erste Element dieser Klasse ist, dann so:
alert(document.getElementsByClassName("address").id);
Keine Ursache.
Arbeite dich da Schritt für Schritt durch, dann kommt die Erfahrung von selbst.
Kannst du ein gutes Tutorial oder Buch empfehlen, damit ich mich mal mit JS auseinandersetzen kann?
Bücher habe ich selbst nie gebraucht, aber das Web ist ja voll von Stoff zum Thema:Arbeite dich da Schritt für Schritt durch, dann kommt die Erfahrung von selbst.
Etwa in dieser Art ? In die Arrays schreibst du die jeweils möglichen Antworten.
Das ganze kann man natürlich auch gleich in ein verschachteltes Array schreiben und das abfragen, wie man Lustig ist Ich wollte dich aber nicht gleich zu Beginn überfordern.
Hier noch eine andere Variante...
Grüße Uwe
function checkTarget(target, antwort){
switch(target){
case 'w1':
var korrekt = [1,2,3];
return (korrekt.indexOf(antwort) > -1)? true: false;
break;
case 'w2':
var korrekt = [4,5];
return (korrekt.indexOf(antwort) > -1)? true: false;
break;
case 'w3':
var korrekt = [6,7];
return (korrekt.indexOf(antwort) > -1)? true: false;
break;
default:
return false;
}
}
alert(checkTarget('w2',4));
Hier noch eine andere Variante...
function checkTarget(target, antwort){
var answers = {
'w1': [1,2,3],
'w2': [4,5],
'w3': [6,7]
}
try{
return (answers[target].indexOf(antwort) > -1) ? true :false;
}catch(err){
return false;
}
}
alert(checkTarget('w1',2));
Dir sind da ein paar gravierende Fehler unterlaufen:
Zeilen 9,10,11 fehlen die Hochkommas. und die break Statements. Zusätzlich sind die "case" Einträge die du unterscheidest alle doppelt... das wird so in dieser Art nichts ...
http://www.w3schools.com/js/js_switch.asp
Wobei es ganz korrekt (wenn die Syntax stimmt) so lauten müsste:
Öhm wohl eher nicht Zeilen 9,10,11 fehlen die Hochkommas. und die break Statements. Zusätzlich sind die "case" Einträge die du unterscheidest alle doppelt... das wird so in dieser Art nichts ...
http://www.w3schools.com/js/js_switch.asp
Weil du das Array innerhalb des Switch Konstrukts deklarierst und nicht außerhalb, deswegen ist die Variable außerhalb nicht sichtbar
Es gibt noch viel zu Lernen ... http://www.w3schools.com/js/js_switch.asp
Mein zweites Beispiel hast du auch gesehen ?
Es gibt noch viel zu Lernen ... http://www.w3schools.com/js/js_switch.asp
Mein zweites Beispiel hast du auch gesehen ?
nö, einfach vor dem Switch die Variable deklarieren,
und dann im Switch Konstrukt die Variable nur "füllen".
Das ist aber fast in jeder Sprache gleich (Variable-Scope).
Oder gleich zu meiner zweiten kürzeren Variante greifen...
var korrekt;
korrekt = ........;
Oder gleich zu meiner zweiten kürzeren Variante greifen...
Zitat von @Maik87:
Hab nun var korrekt vor dem Switch und im Switch nur noch korrekt = [...] - trotzdem weiterhin -1.
Ist deine Variable antwort ein String oder ein Integer ? Wenn es ein String ist musst du die einzelnen Elemente in den Arrays in Anführungszeichen setzen, oder vorher in Integer umwandeln (antwort = parseInt(antwort)).Hab nun var korrekt vor dem Switch und im Switch nur noch korrekt = [...] - trotzdem weiterhin -1.
p.s. Mutiert das hier jetzt zu einem JavaScript-Kurs ???
Das hat jetzt nun rein gar nichts mehr mit der Frage zu tun ...
Bitte stelle dazu dann eine neue Frage im Forum. Danke.