Creo que necesito encontrar la identificación del último elemento en mi div para poder agregar un elemento ul después de él usando javascript. La razón de esto es que el ul existente / último en mi div se genera dinámicamente, por lo que su id podría ser cualquier cosa.

He intentado simplemente agregar el elemento al contenedor div usando el siguiente código, esperando que lo ponga al final ...

var container = document.getElementById("container");
var newUL = document.createElement("ul");
container.appendChild(newUL);
newUL.innerHTML = 'Hello';

Pero esto, por alguna razón, agrega el nuevo ul fuera de mi contenedor div. ¿Alguien sabe por qué pasa esto? pero también ¿cómo encontrar la identificación del último elemento para poder agregarla después del último elemento? Gracias.

1
Wez 31 ago. 2011 a las 20:10

3 respuestas

La mejor respuesta
container.lastElementChild.id 

Pero creo que necesitas encontrar el verdadero problema. Un UL no puede contener texto. Solo puede contener elementos li.

2
Gerben 31 ago. 2011 a las 16:16

La forma más fácil sería confiar en un marco Javascript como jQuery para resolver este problema.

JQuery le permite responder a su situación con este código simple:

$('#container').append(
  $('<ul></ul>').text('Hello')
);

EDITAR: Tomó en cuenta el comentario de arnaud576875.

2
Arnaud Leymet 31 ago. 2011 a las 16:21

Está configurando el innerHTML de un elemento ul en una cadena simple: 'Hello'; eso contraviene las reglas. Quizás una mejor prueba sería agregar algunos elementos li:

newUl.innerHTML = "<li>One</li><li>Two</li>";
1
HBP 31 ago. 2011 a las 16:26