tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
650
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kesnw kesnw ist offline Mitglied Brokat
    Registriert seit
    Sep 2003
    Beiträge
    338
    Hi,

    ich möchte alle divs selektieren die einen Text beinhalten.

    Ich möchte Also folgendes heruasfiltern:

    Code :
    1
    
    <div class="test">Hallo<br>blablabla</div>

    und folgendes weglassen:

    Code :
    1
    
    <div allign="right">blabla</div>

    Also aus:

    Code :
    1
    
    var divs = document.all.tags("div");

    soetwas wie

    Code :
    1
    
    var classdivs = document.all.tags("div class='text'");

    Ist soetwas möglich? Wenn nicht mit document.all.tags, mit was dann
    Geändert von kesnw (19.09.03 um 14:29 Uhr)
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    Ingolstadt
    Beiträge
    2.940
    Original geschrieben von kesnw

    Code :
    1
    
    <div class="test">Hallo<br>blablabla</div>
    und folgendes weglassen:
    Code :
    1
    
    <div allign="right">blabla</div>
    Hallo,

    beide Div´s haben Textnodes, von daher kannst du sie nicht unterscheiden. Wenn du den Div, welche "rein" sollen, einen namen gibst (oder irgendwie anders identifizierbar machst) , dann sollte es kein Problem sein, ansonsten siehts schlecht aus. Ich würde dann aber den Weg über document.getElementsByName() evtl in kombination mit document.getElementsByTagName() gehen.

    bye und viel Erfolg
    Andreas

    //edit: kleines Beispiel
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    <html>
    <head>
      <script type="text/javascript">
      function getDiv(){
          var divs = document.getElementsByName('ok');
          alert("es sind "+divs.length+" Divs gespeichert");
          for(x=0;x<divs.length;x++){
              alert("div "+x+" = "+divs[x].firstChild.data);
          }
      }
      </script>
    </head>
    <body>
    <div name="ok">BLA1</div>
    <div>BLA0</div>
    <div name="ok">BLA2</div>
    <div name="ok">BLA3</div>
     
    <a href="#" onclick="getDiv(); return false">getDivs</a>
    </body>
    </html>
    Geändert von Andreas Gaisbauer (19.09.03 um 15:19 Uhr)
     

  3. #3
    kesnw kesnw ist offline Mitglied Brokat
    Registriert seit
    Sep 2003
    Beiträge
    338
    Funktioniert leider nicht, denn mit document.getElementsByName grift er nicht auf den Namen des Tags zu sondern auf den Tag selbst, also wieder auf alle divs...

    Ich müsste nur auf das erste vorkommende div zugreifen, wie geht das?

    Code :
    1
    
    var divs = document.getElementsByName('text')[0];

    geht leider nicht...
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    Ingolstadt
    Beiträge
    2.940
    Original geschrieben von kesnw
    Funktioniert leider nicht, denn mit document.getElementsByName grift er nicht auf den Namen des Tags zu sondern auf den Tag selbst, also wieder auf alle divs...
    Nein, document.getElementsByName speichert die objekte mit dem entsprechenden Name Attribut (nicht Tagname). Wenn du sagst, alle <div>`s die gespeichert werden sollen, bekommen den namen "ok" - und nach diesen Namen suchst du dann mit getElementsByName, dann hast du kein Problem. Identische Namen dürfen ja öfters vergeben werden... Du kannst auch sagen, jedes DIV Element mit der Class="text" soll in einem Array gespeichert werden. Dann musst du erst mit document.getElementsByTagName('div') alle divs speichern und dann mir einer if Abfrage in einer Scheife diese Elemente durchgehen, also ungefähr so:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    var elements = new Array();
    var divs = document.getElementsByTagName('div');
    for(var x= 0; x<divs.length; x++){
      if(divs[0].className =='text'){
        elements.push(divs[x].firstCild.data);
      }
    }

    Ich müsste nur auf das erste vorkommende div zugreifen, wie geht das?
    Code :
    1
    
    var divs = document.getElementsByName('text')[0];
    geht leider nicht...
    Doch geht - allerdings wird dir so nur "object" zurückgeliefert. Wenn du den Inhalt des Objekts willst musst du es so ansprechen:
    document.getElementsByName('ok')[0].firstChild.data

    bye
     

Ähnliche Themen

  1. JSF 1.2 - h:-tags werden gerendert, f:-tags nicht?
    Von Firestorm696 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 19.03.10, 08:46
  2. span-tags innerhalb der p-tags erzeugen
    Von gremmlin im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 09.01.09, 19:40
  3. [XSD] Tags mit Strings und verschachtelten Tags zulassen.
    Von mmueller78 im Forum XML Technologien
    Antworten: 1
    Letzter Beitrag: 05.10.07, 06:49
  4. document/view -> 2 views auf das document
    Von CiC im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 10.05.06, 16:44
  5. document.write() und document.close()
    Von Tucker im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 27.06.04, 18:46