Paul: object HTMLCollection push

Moin.
Mit folgendem hole ich mir ein Object vom Typ HTMLCollection:

var overlays = document.getElementsByName('overlay');
          alert(overlays);

Nun möchte ich ein weiteres Element hinzufügen:

overlays.push(document.getElementById('test'));
          alert(overlays);

Nun wird mir aber gesagt: "overlays.push is not a function". Wie kann ich das Element 'test' hinzufügen?

Paul

  1. Hallo Paul,

    Nun wird mir aber gesagt: "overlays.push is not a function". Wie kann ich das Element 'test' hinzufügen?

    mit appendChild.

    Gruß, Jürgen

    1. mit appendChild.

      Vielen Dank!

  2. Hallo,

    Nun möchte ich ein weiteres Element hinzufügen:

    overlays.push(document.getElementById('test'));
              alert(overlays);

    Nun wird mir aber gesagt: "overlays.push is not a function". Wie kann ich das Element 'test' hinzufügen?

    Wo möchtest du es hinzufügen?
    Einem Element im DOM ein anderes Element anhängen? Das geht wie gesagt mit http://de.selfhtml.org/javascript/objekte/node.htm#append_child@title=appendChild – bei einem einzelnen Element, nicht der HTMLCollection.

    Die HTMLCollection ist einfach eine Liste, die (live) das DOM abbildet. Du kannst ihr nichts direkt hinzufügen – du kannst nur dem DOM ein Element hinzufügen.

    Es gibt natürlich Fälle, in denen man so eine HTMLCollection wie einen normalen Array verarbeiten will. Dann musst man sie in einen Array umwandeln. Z.B. mit var array = Array.prototype.slice.call(overlays);

    Mathias