• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

value-zugriff ohne form

sin777

Neues Mitglied
ist es möglich über eine funktion auf den value einer beispielsweise textarea zuzugreifen, ohne sie in einen form-tag einzuschließen?
ich möchte den value über document.body.my_area.value = "123"; verändern aber das funktioniert nicht :/
Und warum ist der body-Tag nicht in der Hierarschie enthalten?
Weiterhin: wenn ich direkt document.appendChild() anwende, wird nichts eingefügt. Weiß jemand warum? Ich möchte, dass das mouseover-Event im kompletten Anzeigebereich aktiviert ist

Vielen Dank im Voraus
 
Zuletzt bearbeitet:
Ich rate dir dazu die von document mitgelieferten Funktionen zu benutzen um Elemente einzulesen. Die Bekanntesten sind da wohl:
HTML:
document.getElementById("nachricht"); // liest ein Element mit der Id nachricht ein. Zum Beispiel <textarea id="nachricht"></textarea>
document.getElementsByTagName("p"); // liest alle p Elemente ein. Liefert immer ein Array zurück, auch wenn nur 1 Element vorhanden ist! Beispiel: <p>Test</p><p>Bla</p>
document.getElementsByClassName("active"); // liest alle Elemente mit der CSS-Klasse active ein. Liefert immer ein Array zurück, auch wenn nur 1 Element vorhanden ist! Beispiel: <a href="http://google.de" class="active">Google</a>

Desweiteren ist der Inhalt von Textareas (wenn ich mich recht erinnere) nicht über das value-Attribut, sondern über das innerHTML-Attribut erreichbar.
Geb der Textarea die id my_area und dann sähe dein Zugriff folgendermaßen aus.

HTML:
 document.getElementById("my_area").innerHTML = "123";

Den Body Tag kriegst du mit den von mir gezeigten Funktionen auch.

PHP:
var bodys = document.getElementsByTagName("body");
bodys[0].innerHTML = "<h1>Meine Seite</h1>";  // Wir haben ein Array von Elementen zurückbekommen. Deswegen auf das erste zugreifen

wenn ich direkt document.appendChild() anwende, wird nichts eingefügt. Weiß jemand warum? Ich möchte, dass das mouseover-Event im kompletten Anzeigebereich aktiviert ist

mouseover oder mousemove?
Und der "Anzeige Bereich" (nehme an du meinst den Bereich deines Browsers der komplett weiss wäre ohne Inhalt ;)) ist der body. Somit lege ein mouseover (bzw. mousemove, wenn du das eher meintest) auf das body Element.

HTML:
ist es möglich über eine funktion auf den value einer beispielsweise  textarea zuzugreifen, ohne sie in einen form-tag einzuschließen?

Wieso soll die Textarea eigentlich nicht in einer Form sein? Denn sie ist doch für die Dateneingabe gedacht :)

Nunja. Hoffe ich konnte dir helfen. :) Wenn du noch fragen hast her damit.
 
Wenn Du mir das schon anbietest :)

1.) Wie zentriere ich beispielsweise div-objekte in allen Browsern mittels CSS? margin-left/right: auto; funktioniert leider im IE nicht ... :(

2.) Gibt es in html auch soetwas wie einen <foot> Tag als gegenstück zum <body>. Der Head hat ja die Eigenschaft, dass er vor allem anderen geladen hat. Gibt es dann auch einen Tag der nach allem anderen, also dem <body> lädt? Ich bin darauf im zusammenhang mit document.getElemenById("pnt").onclick = fct; gestoßen. Da bei eventhandlern als objetreferenz ja vorher die entsprechenden objekte geladen werden müssen. Oder fügt man das dann am geschicktesten einfach am ende das html-codes an?

Vielen, vielen Dank im Voraus.
 
Zuletzt bearbeitet:
Wenn Du mir das schon anbietest :)

1.) Wie zentriere ich beispielsweise div-objekte in allen Browsern mittels CSS? margin-left/right: auto; funktioniert leider im IE nicht ... :(

2.) Gibt es in html auch soetwas wie einen <foot> Tag als gegenstück zum <body>. Der Head hat ja die Eigenschaft, dass er vor allem anderen geladen hat. Gibt es dann auch einen Tag der nach allem anderen, also dem <body> lädt? Ich bin darauf im zusammenhang mit document.getElemenById("pnt").onclick = fct; gestoßen. Da bei eventhandlern als objetreferenz ja vorher die entsprechenden objekte geladen werden müssen. Oder fügt man das dann am geschicktesten einfach am ende das html-codes an?

Vielen, vielen Dank im Voraus.

1.) Klar funktioniert das ;) Du bist bestimmt im Quirks-Modus . Also bitte immer den Doctype setzen :)

2.) Einen foot Tag gibt es nicht. Wenn dein Problem jedoch nur eins mit den Event-Handlern ist, kann ich dich beruhigen. Es gibt in Javascript Events, die ausgelöst werden, sobald das Dokument fertig geladen ist.

Die leichteste Methode dafür ist das vom window mitgelieferte Callback window.onload zu setzen.
Beispiele wie so etwas aussehen kann:

Code:
window.onload = init;

function init() {
  document.getElementById("test");
}

als alternative auch mit einer anonymen Funktion möglich

Code:
window.onload = function() {
   document.getElementById("test");

};

Denn obwohl das Ganze im head steht, wird die Funktion erst ausgeführt, wenn das Dkument geladen wurde.
Ein großer Nachteil solcher .onXXX Methoden liegt darin, dass man nur eine Callbackfunktion pro Element definieren kann.
Was heisst das? Wenn ich jetzt selber etwas schreibe, dass window.onload benutzt wie:
Code:
 window.onload = doThat;

und jetzt hab ich da drunter noch eine js eingebunden, die folgenden Code hat
Code:
window.onload = doOther;
dann wird nur noch die Funktion doOther ausgeführt sobald das Dokument geladen wurde. Um das zu vermeiden bieten Browser Funktionen an um Event-Listener an Elemente anzuhängen.
Das Problem ist leider, dass die Funktionen im IE (Juhuuu -_-) anders als in den anderen Browsern gehandlet werden.
Die Funktion im IE lautet window.attachEvent und im Rest window.addEventListener
Beispiel:
Code:
if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "click", func, false );
else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onclick", func );
}
Welche Parameter was bedeuten kann man sich eventuell denken, bis auf das letzte false im addEventListener. Dieses Argument will wissen ob das Event "hochblubbern" soll oder nicht. Wenn du dazu weiteren lesestoff brauchst schau mal hier: JavaScript: 9.6 Event-Bubbling

Hoffe konnte dir helfen ;)
 
Zurück
Oben