tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
785
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von gremmlin
    gremmlin gremmlin ist offline Mitglied Brokat
    Registriert seit
    Jun 2001
    Ort
    Salzburg
    Beiträge
    402
    Hallo!

    Ich vermute das is ein relativ leichtes Skript. Nur ich hab mit javascript noch nicht so viel gemacht. Darum funktionierts wahrscheinlich nicht, hehe...

    Also ich will innerhalb der p-Tags span-Tags platzieren, damit ichs nicht immer händisch dazuschreiben muss und die Textzeilen farbig hinterlegt sind.

    Ich hab mich mal ziemlich simpel damit versucht:
    Code :
    1
    2
    3
    
    var mySpan = document.createElement("span");
    var myP = document.getElementsByTagName("p");
    myP.appendChild(mySpan);

    Geht leider nicht, drum bräuchte ich Hilfe
    Danke!
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin Gizzmo

    mit getElementsByTagName("p") erhältst du alle p-Elemente im Dokument(in Array-Form)
    Wenn du alle diese Elemente um ein span bereichern willst, musst du diesen Array durchlaufen und jedem <p> einzeln den <span> verpassen.
     

  3. #3
    Avatar von gremmlin
    gremmlin gremmlin ist offline Mitglied Brokat
    Registriert seit
    Jun 2001
    Ort
    Salzburg
    Beiträge
    402
    moin moin!

    Oke, hab das mal so angelegt, aber leider ohne Ergebnis - hab ich noch was zu beachten?

    Code :
    1
    2
    3
    4
    5
    
    var mySpan = document.createElement("span");
    var myP = document.getElementsByTagName("p");
    for (var i = 0; i < myP.length; ++i){
    myP.appendChild(mySpan);
    }
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du musst in der Schleife auf das aktuelle Element verweisen:
    Code :
    1
    
    myP[B][COLOR="DarkRed"][i][/COLOR][/B].appendChild(mySpan);
     

  5. #5
    Avatar von gremmlin
    gremmlin gremmlin ist offline Mitglied Brokat
    Registriert seit
    Jun 2001
    Ort
    Salzburg
    Beiträge
    402
    So eine sche**
    Funktioniert immer noch nicht. Kann doch nicht sein!
    Habs als <script>...</script> direkt im body stehen - kann das Schuld sein?
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du musst das Skript entweder nach dem letzten <p> im Dokument platzieren, oder aber bei onload ausführen.
    Weiterhin müsstest du auch jeweils ein neues <span>-Element erzeugen.

    Und damit du siehst, dass etwas eingefügt wurde, wäre es gut, wenn der span Inhalt hätte
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; 
                                    charset=ISO-8859-1"   />
    <meta name="author"             content="doktormolle" />
    <meta name="date"               content="2009-01-09"  />
    <title>Test</title>
     
    </head>
    <body>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <script type="text/javascript">
    <!--
     
    var myP = document.getElementsByTagName("p");
    for (var i = 0; i < myP.length; ++i)
      {
        var mySpan = document.createElement("span");
        mySpan.appendChild(document.createTextNode('Ein neuer span'));
        myP[i].appendChild(mySpan);
      }
    //-->
    </script>
    </body>
    </html>
     

  7. #7
    Avatar von gremmlin
    gremmlin gremmlin ist offline Mitglied Brokat
    Registriert seit
    Jun 2001
    Ort
    Salzburg
    Beiträge
    402
    Okaay, vielen Dank schon mal!

    Also er schreib zumindest nun vor dem </p> die zwei span-tags hin.
    Ich will das Ganze allerdings deshalb machen, weil ich im nachhinein jedem Paragraph zusätzlich einen span-tag vor und nach dem Text geben will, damit ich die Zeilen unterstreichen kann.
    Er müsste also den ersten span-tag nach dem öffnenden p-tag und den zweiten genau vor dem schließenden schreiben...
    Kann javascript das auch?
     

  8. #8
    hans jörg hans jörg ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Ort
    Klagenfurt (Kärnten) [Österreich]
    Beiträge
    210
    Hi,
    es gibt viel "sauberere" Lösungen als die Folgende, aber sie sollte deine Aufgabe zumindest lösen:
    HTML-Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; 
                                    charset=ISO-8859-1"   />
    <meta name="author"             content="doktormolle" />
    <meta name="date"               content="2009-01-09"  />
    <title>Test</title>
    
    </head>
    <body>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
    <script type="text/javascript">
    <!--
    
    var myP = document.getElementsByTagName("p");
    for (var i = 0; i < myP.length; ++i)
      {
            myP[i].innerHTML  = '<span>'+myP[i].innerHTML +'</span>';
      }
    //-->
    </script>
    </body>
    </html>
     

  9. #9
    Avatar von gremmlin
    gremmlin gremmlin ist offline Mitglied Brokat
    Registriert seit
    Jun 2001
    Ort
    Salzburg
    Beiträge
    402
    Sehr fein - so funktionierts!
    Dankesehr!

    Bin auch für saubere Lösungen aufgeschlossen - immer her damit
     

  10. #10
    hans jörg hans jörg ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Ort
    Klagenfurt (Kärnten) [Österreich]
    Beiträge
    210
    Du könntest zb. innerhalb der Schleife
    mit dem von dir zuvor verwendeten
    HTML-Code:
    var mySpan = document.createElement("span");
    ein span Objekt erzeugen;
    dann den Array
    HTML-Code:
    myP[i].childNodes
    in einer weiteren Schleife abarbeiten;
    in dieser müsstest du die Kindknoten (mit deren Kindknoten) von myP[i] alle Klonen dem Span Objekt anfügen und von myP[i] entfernen;
    wenn die innere Schleife abgearbeitet ist hängst du das Span Objekt mit deinem Code
    HTML-Code:
     myP[i].appendChild(mySpan);
    wieder an.

    Ist halt recht umständlich, vor allem da es ja auch mit viel weniger Code funktioniert.
     

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von gremmlin Beitrag anzeigen
    Ich will das Ganze allerdings deshalb machen, weil ich im nachhinein jedem Paragraph zusätzlich einen span-tag vor und nach dem Text geben will, damit ich die Zeilen unterstreichen kann.
    Wenn du mit "unterstreichen" durchgezogene Linien über und unter dem p meinst, für soetwas gibt es CSS-border.
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 14.03.09, 09:23
  2. div innerhalb eines form tags
    Von it-bergmann im Forum CSS
    Antworten: 9
    Letzter Beitrag: 14.05.08, 21:48
  3. Scrollbalken nur innerhalb des TD-Tags
    Von Fabian Frank im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 17.10.05, 14:57
  4. Auf Tags innerhalb eines iframes zugreifen
    Von dilemma im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 26.09.05, 15:52
  5. XSL Stylesheet, Tags innerhalb von Tags
    Von woellner im Forum XML Technologien
    Antworten: 2
    Letzter Beitrag: 06.08.04, 12:35