| | | | |
| |||||||
| JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | ||
| Erfahrener Benutzer | Hallo Leute, sollte der Threadtitel nicht passen zum beschriebenen Problem, dann bitte schlagt einen besseren vor, ich werde ihn dann sofort ändern. Also ich will beim laden eines Dokumentes nach allen DIV Elementen suchen. Dann dieses Array mit einer Schleife durchlaufen und da drin dann eine IF Kontrollabfrage machen wo ich sicher stelle das nur DIV's abgearbeitet werden die ein id="vote_n" (n steht für eine Zahl) besitzen. In diesen DIV's befinden sich Grafiken, leider sind zwischen den Grafiken bzw. überall da wo ein Zeilenumbruch ist auch Textnodes #text vorhanden. Diese will ich löschen um am Ende vernünftig mit den Grafikelementen weiter arbeiten zu können. Mein Problem nun, es wir nur einmal abgearbeitet, also nur der erste DIV. Der Rest bleibt unverändert. In der Fehlerkonsole bekomme ich folgende Ausgabe, aber kann mir leider nicht erklären warum. Zitat:
Code: if ( voteDivs[j].childNodes[k].nodeName == "#text" ) {
Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/star_voting.js"></script>
<script type="text/javascript">
window.onload = function () {
var voteDivs = document.body.getElementsByTagName( "div" );
for ( var j = 1; j <= voteDivs.length; j++ ) {
if ( voteDivs[j].getAttribute( "id" ) == "vote_" + j ) {
var cntChildNodes = voteDivs[j].childNodes.length;
for ( var k = 0; k < cntChildNodes; k++ ) {
if ( voteDivs[j].childNodes[k].nodeName == "#text" ) {
voteDivs[j].removeChild( voteDivs[j].childNodes[k] );
}
}
}
}
}
</script>
<title>Lit-Web Stern Berwertung mit Javascript und Ajax</title>
</head>
<body>
<div id="debug"> </div>
<div id="vote_1" style="margin-bottom: 5px; width: 150px;">
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
</div>
<div id="vote_2" style="margin-bottom: 5px; width: 150px;">
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
</div>
<div id="vote_3" style="margin-bottom: 5px; width: 150px;">
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
</div>
<div id="vote_4" style="margin-bottom: 5px; width: 150px;">
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
</div>
<div id="vote_5" style="margin-bottom: 5px; width: 150px;">
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
<img src="grafiken/star_black.png" alt="star" style="border: none;" />
</div>
</body>
</html>
Vielen Dank für eure Hilfe. Mfg der Litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer | Zitat:
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Dass Array-Indizies nunmal bei 0 beginnen. Aus diesem Grund hast Du auch nur eine Fehlermeldung, nicht 4 bekommen.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | ||
| Erfahrener Benutzer | Ich habe den Code nun mal abgeändert und auch gleich noch paar Testausgaben gemacht und diese waren alle korrekt. Nur wird das löschen der #text Knoten immer noch nur im ersten DIV gemacht. Dann kommt wieder folgende Fehlermeldung. Zitat:
Code: window.onload = function () {
var voteDivs = document.body.getElementsByTagName( "div" );
for ( var j = 0; j < voteDivs.length; j++ ) {
if ( voteDivs[j].getAttribute( "id" ).split( "_" )[0] == "vote" ) {
// alert( voteDivs[j].getAttribute( "id" ) );
var cntChildNodes = voteDivs[j].childNodes.length;
// alert( cntChildNodes );
for ( var k = 0; k <= cntChildNodes; k++ ) {
if ( voteDivs[j].childNodes[k].nodeName == "#text" ) {
// alert( voteDivs[j].childNodes[k].nodeName ); 31 mal durchlaufen, korrekt
voteDivs[j].removeChild( voteDivs[j].childNodes[k] );
}
}
}
}
}
[EDIT] Obwohl ich habe grad festgestellt mit dieser Testausgabe Code: if ( voteDivs[j].childNodes[k].nodeName == "#text" ) {
alert( voteDivs[j].getAttribute( "id" ) + " / " + voteDivs[j].childNodes[k].nodeName );
// voteDivs[j].removeChild( voteDivs[j].childNodes[k] );
}
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (10.02.2011 um 17:42 Uhr). | |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Selbes Thema. Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
| | |
| Erfahrener Benutzer | Aber ich verstehe eins nicht. Ok das = war zuviel. So nun sieht der Codeteil so aus. Code: for ( var k = 0; k < cntChildNodes; k++ ) {
if ( voteDivs[j].childNodes[k].nodeName == "#text" ) {
// alert( voteDivs[j].getAttribute( "id" ) + " / " + voteDivs[j].childNodes[k].nodeName );
voteDivs[j].removeChild( voteDivs[j].childNodes[k] );
}
}
Wenn es aber ans löschen geht, dann wird das nur im ersten gemacht. Das kapiere ich grad nicht wirklich.
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Siehe Ergänzung.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |
| Erfahrener Benutzer | Ja grad eben erst gesehen. Würde ich da mit einer rekursiven Funktion besser fahren? Oder was müsste ich anders machen? Mir fehlt grad der Ansatz zu dem Problem.
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Willst Du immer alle löschen? Dann müsste im Prinzip reichen, immer Element[0] zu entfernen. Oder einfach den Nodeinhalt komplett auf NULL zu setzen, falls da nicht noch anderes drin steht. [edit] Ach nee, willst Du ja nicht. Dann vielleicht besser alle in Frage kommenden Nodes vorher separat in ein Array auslesen.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| mehrdimensionales array inhalte tauschen | pidaman | PHP Tipps 2010 | 18 | 27.08.2010 16:58 |
| Suche in Text-Datenbank ein Array und lösche es - Lösung | UdoDirk | PHP Tipps 2010 | 2 | 18.07.2010 08:27 |
| [Erledigt] Bereich einer Array lässt sich nicht ausgeben | Polliny | PHP Tipps 2010 | 54 | 21.06.2010 15:30 |
| [Erledigt] Sortierung mehrerer Arrays | philosapiens | PHP Tipps 2010 | 16 | 08.06.2010 05:22 |
| PHPLot von der Datenbank zum mehrdimensionalen Array | mannimammut | PHP Tipps 2009 | 1 | 15.12.2009 10:40 |
| [Erledigt] Array Sortieren | beist | PHP Tipps 2009 | 4 | 10.07.2009 08:53 |
| Turnierbaum aus array erstellen | kingflo | PHP-Fortgeschrittene | 11 | 30.07.2008 11:32 |
| Soapfault: Undefined Property | Argi | PHP-Fortgeschrittene | 0 | 28.07.2008 11:17 |
| ARRAY: alle möglichen Kombinationen | Tentacle | PHP Tipps 2006 | 13 | 12.05.2006 00:18 |
| Menü mit Unterpunkten | supertramp | Beitragsarchiv | 7 | 18.10.2005 22:40 |
| Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) | Buhmann | PHP-Fortgeschrittene | 4 | 12.07.2005 14:03 |
| Array wie auslesen? | PHP Tipps 2005 | 7 | 07.03.2005 11:43 | |
| [Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln | PHP-Fortgeschrittene | 3 | 03.01.2005 22:31 | |
| Abfrage mit id aus anderer Tabelle | suter | PHP Tipps 2004-2 | 15 | 16.12.2004 14:25 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| getelementsbytagname schleife, php getelementsbytagname, getelementsbytagname, getelementsbytagname php, window.onload getelementsbytagname, getelementsbytagname array, getelementsbytagname style change php, php getelementsbytagname bestimmte, js getelementsbytagname ende anhängen, getelementsbyname javascript schleife, javascript getelementsbytagname is undefined, getelementsbytagname for schleife, php getelementsbytagname funktioniert nicht, getelementsbytagname php schleife, javascript alle div durchlaufen, javascript alle divs durchlaufen, getelementsbytagname array remove, getelementsbyname schleife, javascript alle elemente im div durchlaufen, for schleife getelementsbytagname |