Розкриття інформації: Я підтримую BOB.
Існує бібліотека javascript, яка значно спрощує цей процес під назвою BOB .
Для вашого конкретного прикладу:
<div><img src="the url" />the name</div>
Це може бути згенеровано за допомогою BOB за допомогою наступного коду.
new BOB("div").insert("img",{"src":"the url"}).up().content("the name").toString()
//=> "<div><img src="the url" />the name</div>"
Або з коротшим синтаксисом
new BOB("div").i("img",{"src":"the url"}).up().co("the name").s()
//=> "<div><img src="the url" />the name</div>"
Ця бібліотека є досить потужною і може бути використана для створення дуже складних структур із вставкою даних (аналогічно d3), наприклад:
data = [1,2,3,4,5,6,7]
new BOB("div").i("ul#count").do(data).i("li.number").co(BOB.d).up().up().a("a",{"href": "www.google.com"}).s()
//=> "<div><ul id="count"><li class="number">1</li><li class="number">2</li><li class="number">3</li><li class="number">4</li><li class="number">5</li><li class="number">6</li><li class="number">7</li></ul></div><a href="www.google.com"></a>"
BOB наразі не підтримує введення даних у DOM. Це на тодолісті. Наразі ви можете просто використовувати вихід разом із звичайним JS або jQuery і розміщувати його куди завгодно.
document.getElementById("parent").innerHTML = new BOB("div").insert("img",{"src":"the url"}).up().content("the name").s();
//Or jquery:
$("#parent").append(new BOB("div").insert("img",{"src":"the url"}).up().content("the name").s());
Я створив цю бібліотеку, тому що мене не влаштовує жодна з альтернатив, таких як jquery та d3. Код дуже складний і важко читається. Робота з BOB - на мою думку, це, очевидно, упереджено, набагато приємніше.
BOB доступний на Bower , так що ви можете отримати його, запустивши bower install BOB
.