document.getElementById mit this ersetzen
Dirk
- javascript
Hallo,
ich habe eine für einen Fachmann sicherlich einfache Frage, aber ich google mich zur Zeit echt kaputt.
Ich will in einer Javascript Function
document.getElementById('test').innerHTML
mit "this" ersetzen.
Hat jemand eine Ahnung wie das geht?
Ich will in einer Javascript Function
document.getElementById('test').innerHTML
mit "this" ersetzen.
ähm. this bezieht sich auf das Object, welchem eine Funktion zugewiesen wird.
var x = document.getElementById('test');
x.onclick = function(){ alert( this.innerHTML ); }
oder innerhalb dessen ein handler direkt notiert ist
<div id="hallo" onclick="my_func( this.id)">
this ist das <div> element selbst, dessen id übergeben wird.
mfg Beat
Das ist sehr schade.
Mein großes Problem ist, dass anscheinent nur getElementById funktioniert. Da mehrere IDs angesprochen werden müssen, ist das ganze nicht mehr valide.
Das ist sehr schade.
Mein großes Problem ist, dass anscheinent nur getElementById funktioniert. Da mehrere IDs angesprochen werden müssen, ist das ganze nicht mehr valide.
Du meinst du hast so was
<ul id="a"><li/><li/><li/><li/></ul>
var list = new Object;
list = document.getElementById('a').getElementsByTagName('li');
//list enthält jetzt einen Array mit allen <li> Elementen in <ul>
for(var i= 0; i < list.length; i++ ){
list[i].index = i;
list[i].onclick = function(){ alert( this.index ) }
}
Siehe hier, wie praktisch this ist. Es ist immer ein anderes der li Elemente
Must halt deinen Fall genauer erläutern.
mfg Beat
Es fällt mir etwas schwer das genau zu erläutern, weil ich von javascript nicht viel Ahnung habe.
Ich möchte dieses Beispiel auf mehrere Links und IDs anwenden.
Es fällt mir etwas schwer das genau zu erläutern, weil ich von javascript nicht viel Ahnung habe.
Ich möchte dieses Beispiel auf mehrere Links und IDs anwenden.
Weist du denn auch, ob das die richtigere/bessere/geeignetere Lösung ist als traditionelle Wege? Vermutlich hast du das ganz einfach noch nicht recherchiert.
Lies mal den Wiki Artikel dazu
http://de.wikipedia.org/wiki/Ajax_(Programmierung)
mfg Beat
Leider verstehe ich die Hälfte in dem Link nicht.
Ich wurde von unserem Chef bauftragt das so zu machen und war schon stolz dass ich das mit einem Link hinbekommen habe.
Leider verstehe ich die Hälfte in dem Link nicht.
Ich wurde von unserem Chef bauftragt das so zu machen und war schon stolz dass ich das mit einem Link hinbekommen habe.
Und jetzt ist dein Problem, das, was du mit einem Link geschafft hast, methodisch so zu verallgemeinern, dass es mit anderen Links geht?
Dann musst du dieses Beispiel insofern analysieren: Welche teile sind spezifisch für den konkreten Link. Welche Teile sind allgemein und Teil einer Funktion, die aufgerufen werden kann.
Chef-Programmierung ist nicht meine Sache, aber vielleicht auch eine lohnenswerte Ergänzung, solange man nicht das Argument "Gehalt" sondern "Wirtschaftlichkeit" verwendet.
mfg Beat
Mein großes Problem ist vor allem, dass ich keine Ahnung von der ganzen Materie habe. Habe noch nie eine Website gebaut und jetzt soll ich das halt machen.
Bin seit Stunden am googlen...
Ergänzung:
Genauer geht's um diese Ausschnitte
<code lang=javascript]
function loadContent()
{
xmlHttpObject.open('get','hallo.txt');
...
}
[/code]
<a href="#" onclick="loadContent();">Klick mich</a>.
Die ich mal verallgemeinere:
<code lang=javascript]
function doSomething()
{
object.method('var1','var2');
// ...
}
[/code]
<a href="#" onclick="doSomethin();">Klick mich</a>.
Statt die Strings 'var1' 'var2' hardcodiert in der Funktion zu verwenden, kannst du sie auch einer Funktion als Parameter übergeben.
<code lang=javascript]
function doSomething( v1, v2 )
{
object.method(v1, v2);
...
}
[/code]
<a href="#" onclick="doSomethin('var1','var2');">Klick mich</a>.
Schau wo var1 var2 hingewandert sind.
Wir haben nun in der Funktion lokale Variablen v1, v2, die wir verwenden können. Diese Variablen v1, v2 bestehen nur innerhalb der Funktion, welche sie als Übergabevariablen deklariert. Sie sind von aussen unsichtbar.
mfg Beat
Danke,
ich werde mir das nochmal in Ruhe ansehen. Vielleicht schaffe ich es ja.