String wird nicht erweitert !

halbesbit

Aktives Mitglied
Ich habe folgendes Script stückchen :
CODE
<script type="text/javascript">
function check(element){
var string="";
var vorhanden = string.search(element.id);
if (vorhanden != -1){
var string = string.replace("|" + element.id, "");
}else{
var string = string + "|" + element.id;
}
document.getElementById("aus").innerHTML = string;
}
</script>


Es gehört zu meinem Felder Script ,dort werden viele kleine Kästchen dargestellt und wenn ich darauf klicke soll die id (z.b. feld_37) an dem String angehängt werden wenn es aber schon vorhanden ist soll es wieder gelöscht werden!Es wird zwar angezeigt im innerHTML aber es wird nicht erweitert
sad.gif
warum nur
huh.gif


Bitte helft mir, komme nicht weiter (bin Anfänger !)
sad.gif
 
Programmieren heißt: Du hast eine Vorstellung davon, was das Programm machen soll, es macht das noch nicht.

Also ist es zum Finden von Fehlern entscheidend, daß Du dir ausgeben läßt, was das Programm jeweils macht:

Füge nach jeder Zeile, die 'etwas tut', ein passendes alert() ein und lass dir so ausgeben, ob die Zeile darüber mit deinen Vorstellungen übereinstimmt.

Zerlege komplexe Ausdrücke wie

CODE document.getElementById("aus").innerHTML = string;


in Teilschritte: Liefert getElementById etwas zurück? Ersetze 'string' zunächst durch eine Konstante usw.
 
Toll ich weiss was Progrmieren heisst !Aber wenn das Programm nicht das macht was ich erwarte und den Fehler selber nicht finde hoffe ich darauf das (z.b so ein Experte wie du) jemmand mehr übersicht hat und den Fehler findet und evtl sogar lösen kann.
Das Programm macht ja alles was es soll nur das der String nicht erweitert wird, also die gewüschten Werte nicht angehangen werden.
1.Das Feld wird aufgebaut und mit Nummern versehen.
2.Mit einem Klick auf einem Feld wird geprüft (onclick="check(this)) ob z.b. mit der id:feld_28 vorhanden ist mit dem Script oben!
3.Wenn Es vorhanden ist (in string) soll es gelöscht werden und wenn nicht hinzugefügt !

Punkt 3 Funktioniert leider nicht ganz, wie gesagt doch ich selber weiss nicht warum
sad.gif

Mit:string = string.concat("|" + element.id); geht es auch nicht !?
sad.gif


p.s. Was ist an :document.getElementById("aus").innerHTML = string; Komplex ???Soll mir den String nur Anzeigen und hat auch nicht wirklich etwas mit meiner frage zu tuhn ?!


Achso hier nochmal das Akuelle Script :
<script type="text/javascript">
function check(element){
var string= new String ();
var vorhanden = string.search(element.id);
if (vorhanden != -1){var string = string.replace("|" + element.id, "");
}else{
string = string.concat("|" + element.id);
}
//document.getElementById("ausgabe").innerHTML = string;
alert(string);
}
</script>
alert(string); Zeigt mir zwar das Akuell angeklickte an wird aber nicht Erweitert bei einem 2. oder dritten Klick !
sad.gif
 
Ohne, dass ich das jetzt lange und breit angeschaut habe, würde ich sagen, dass bei jedem Klick das Script neu ausgeführt wird und somit der Wert von string immer neu initialisiert wird.

Edit: und du musst bloss das richtige = in ein += umwandeln
 
Ja gut !Habe es jetzt ein wenig gelöst mein Problem
smile.gif
Doch habe ich jetzt ein neues
sad.gif

Hier mal ein Demo: http://www.halbesbit.de/demo/Felder/feld40a.php
Alles Funktioniert jetzt eigentlich so wie es wollte nur das wenn ich "elemente" entverne erhalte ich kommas die
natürlich zuviel sind ! (einfach mal 5 felder anklicken und diese in beliebiger reihenfolge nochmal klicken !)
Ich hoffe das ich es verständlich beschrieben habe !?

thx halbesbit.


p.s. also ich möchte aus :feld_14,feld_24,feld_34,feld_44,,,,feld_66,feld_76,feld_77
das bekomen feld_14,feld_24,feld_34,feld_44,feld_66,feld_76,feld_77 !
sorry aber ich lerne noch
wink.gif
rolleyes.gif
 
Ich kenn leider den delete Befehl nicht, der bei dir anscheinend den Elementnamen wieder aus dem String entfernt (Ich hab eh noch nie was in Javascript gemacht
biggrin.gif
), aber im Grunde genommen musst du einfach mit dem Stringfunktionen ein Zeichen mehr aus dem String löschen.
Sowas wie substring gibt es doch sicher in Javascript.
 
Habe es jetzt hinbekommen
biggrin.gif

Doch wei soll es anders sein habe ich da noch ein kleines Problem und zwar möchte ich einen Zeielumbruch nach 10 Einträgen !wenn mir jemmand sagen kann wie ich das mache ist es auch schon Fertig
cool.gif

Hier wieder ein Demo:http://www.halbesbit.de/demo/Felder/
 
Zurück
Oben