[][src]Macro dom_renderer::elem

macro_rules! elem {
    ($x:expr; $(($a:expr,$v:expr)),+; $($e:expr),+) => { ... };
    ($x:expr; $(($a:expr,$v:expr)),+; $($e:expr,)+) => { ... };
    ($x:expr; $(($a:expr,$v:expr)),+) => { ... };
    ($x:expr; $(($a:expr,$v:expr),)+) => { ... };
    ($x:expr; $($e:expr),+) => { ... };
    ($x:expr; $($e:expr,)+) => { ... };
    ($x:expr) => { ... };
}

creates DOM Element

Example

Tag, attribute lists, and child elements are separated by ';'

Attributes and child elements can be omitted.

use dom_renderer::*;
 
let div = elem!("div";
    domtxt!("text"),
    empty!("br"),
    domtxt!("text"),
);
assert_eq!(r#"<div>text<br>text</div>"#, div.render());
 
let div = elem!("div";
    ("id", "id1"),
    ("class", "class1")
);
assert_eq!(r#"<div id="id1" class="class1"></div>"#, div.render());
 
let div = elem!("div";
    ("id", "id1"),
    ("class", "class1");
    domtxt!("text"),
    empty!("br"),
    domtxt!("text"),
);
assert_eq!(r#"<div id="id1" class="class1">text<br>text</div>"#, div.render());