Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

235
Vistas
¿Cómo creo estos elementos dom anidados con jquery?

Dadas estas variables de javascript:

 var div_id = "my_div"; var h1_class = "my_header"; var a_class = "my_a_class"; var a_string = "teststring";

y este elemento de página:

 <div id="container"></div>

Quiero construir esta estructura html con jQuery:

 <div id="container"> <div id="my_div"> <h1 class="my_header"> <a href="/test/" class="my_a_class">teststring</a> </h1> </div> </div>

¿Cuál es la mejor y más legible forma de encadenar los comandos aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

ACTUALIZADO

  • DEMO: http://so.lucafilosofi.com/how-do-i-create-these-nested-dom-elements-with-jquery/

JSON

 var widgets = [{ "div" : { "id" : "my-div-1" }, "h1" : { "class" : "my-header" }, "a" : { "class" : "my-a-class", "text" : "google", "href" : "http://www.google.com" } }, { "div" : { "id" : "my-div-2" }, "h1" : { "class" : "my-header" }, "a" : { "class" : "my-a-class", "text" : "yahoo", "href" : "http://www.yahoo.com" } }]; $(function() { $.each(widgets, function(i, item) { $('<div>').attr('id', item.div.id).html( $('<h1>').attr('class', item.h1.class).html( $('<a>').attr({ 'href' : item.a.href, 'class' : item.a.class }).text(item.a.text))).appendTo('#container'); }); });
over 4 years ago · Santiago Trujillo Denunciar

0

Esta es la forma más ordenada de encadenar comandos en torno a la salida deseada:

 var div_id = "my_div"; var h1_class = "my_header"; var a_class = "my_a_class"; var a_string = "teststring"; var new_div = $("<div>").attr("id",div_id).append( $("<h1>").addClass(h1_class).append( $("<a>").attr("href","/test/").addClass(a_class).text(a_string) ) ); $("div#container").append(new_div);

No necesariamente el más conveniente, pero ciertamente legible.

over 4 years ago · Santiago Trujillo Denunciar

0

Use wrapInner() y ajuste de adentro hacia afuera.

 var div_id = "my_div", h1_class = "my_header", my_a_class = "my_a_class"; $('#container').wrapInner('<a href="/test/" class="' + my_a_class + '">'+a_string+'</a>').wrapInner('<h1 class="' + h1_class + '"/>').wrapInner('<div id="' + div_id + '"/>');

Consulte el ejemplo de trabajo en http://jsfiddle.net/fWXYC/3/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda