javascript - Shorten code to create DOM fragment using jQuery -


i have following code create tree of element i'm using input jstestdriver unit test. followed using jquery? looked jquery.parsehtml function, need extract dom element eventually.

var doc = document.implementation.createhtmldocument(''); var root = doc.createelement('div'); root.appendchild(doc.createtextnode('web ')); var span1 = doc.createelement('span'); span1.setattribute("class", hl_class); span1.appendchild(doc.createtextnode('browsers')); root.appendchild(span1); root.appendchild(doc.createtextnode(' must ')); var span2 = doc.createelement('span'); span2.setattribute("class", hl_class); span2.appendchild(doc.createtextnode('die')); root.appendchild(span2); root.appendchild(doc.createtextnode('')); 

it shorted dramatically without jquery: after second line, assign string containing html root.innerhtml:

var doc = document.implementation.createhtmldocument(''); var root = doc.createelement('div'); root.innerhtml =     'web <span class="' + hl_class +     '">browsers</span> must <span class="' + hl_class +     '">die</span>'; 

with jquery, can same thing $() function, accepts strings containing html fragments , creates dom elements them (and stores top level elements in jquery object returns).

var doc = document.implementation.createhtmldocument(''); var root = $(     '<div>' +     'web <span class="' + hl_class +     '">browsers</span> must <span class="' + hl_class +     '">die</span>' +     '</div>',     doc)[0]; 

note jquery version, had pass custom-built document second argument.

both of made bit clearer bit of simple templating (and there many templating implementations choose from). here's very, basic example without templating engine, show benefit:

var doc = document.implementation.createhtmldocument(''); var html =      '<div>' +     'web <span class="{hl_class}">browsers</span> ' +     'must <span class="{hl_class}">die</span>' +     '</div>'; var root = $(html.replace(/\{hl_class\}/g, hl_class), doc)[0]; 

ideally, though, you'd load template dynamically file can edit (using build tool embed production), rather string literals.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -