Frangoo: Wie prüfen, ob Element 1 ein Kindelement von Element 2 ist?

Hallo,

weiß jemand, wie man prüfen kann, ob Element 1 ein Kindelement auf irgendeiner Stufe von Element 2 ist?
Habe bisher leider keine Funktion dafür gefunden. Und childNodes() liefert ja nur die Nodes der ersten Ebene.

Danke für jeden Tipp,

Frangoo

  1. Habe bisher leider keine Funktion dafür gefunden. Und childNodes() liefert ja nur die Nodes der ersten Ebene.

    prüfe ob der der elternknoten des elementes mit dem wunschknoten ist

    if (document.getElementById('foo').parentNode == document.getElementById('bar')) {
      alert('weee');
    }

    dazu musst du nur die elementreferenzen vergleichen

    1. Hallo!

      Um auf indirekte Parents (Groß- bzw. Groß-groß-Eltern und deren Vorfahren) zu prüfen:

      var c = [Object child];
      var p = [Object parent]

      function isRelativeParent(c, p) {
         var e = c;
         while (e != document.body && e.parentNode) {
            e = e.parentNode;
            if (e == p) { return true; }
         }
         return false;
      }

      Gruß, LX

      --
      X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: Unusual
      X-Please-Search-Archive-First: Absolutely Yes
      1. Um auf indirekte Parents (Groß- bzw. Groß-groß-Eltern und deren Vorfahren) zu prüfen:

        ... muss man das Rad nicht neu unbedingt erfinden, weil viele Browser die Methode .contains() bei Elementobjekten kennen.
        In Browsern, die sie nicht kennen, kann man Elementobjekte mit der Methode erweitern.

        var c = [Object child];
        var p = [Object parent]

        Dann geht:
        p.contains(c) // true oder false

        Mathias

  2. @@Frangoo:

    weiß jemand, wie man prüfen kann, ob Element 1 ein Kindelement auf irgendeiner Stufe von Element 2 ist?
    Habe bisher leider keine Funktion dafür gefunden. Und childNodes() liefert ja nur die Nodes der ersten Ebene.

    Was meinst du mit „Stufe“ und „Ebene“?

    Mir scheint, du verwendest einen falschen Begriff. Bist du denn das _Kind_ deiner Großmutter?

    Interessieren dich vielleicht nicht _Kind_knoten, sondern _Nachfahren_knoten?

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)