Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

244
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!