How to create nested elements with dataviewjs

I want to have a card grid showing my books. I see there’s dv.el() which is used to create an arbitrary HTML element, but I’m not sure how to use it with nested elements.

Speaking in HTML, I want something like this:

const books = dv.pages('"Books"');

for (const book of books) {
    /* in HTML: */
    <div class="card">
        <img src={book.image} class="book-image" /> 
        /* or if possible, something like <div class="book-image">[[book.image]]</div>*/