JSONimal - Elegant DOM Contruction with jQuery
EDIT There is a more complete project achieving exactly the goals I set out for called jquery-haml: http://github.com/creationix/jquery-haml
Occasionally for Javascript projects, I found myself building a lot of HTML programatically, and I wasn’t satisfied with any of the techniques available, so I built JSONimal. I was originally going to just call it JSONML, but that was taken.
What’s it do? This example should demonstrate my goal fairly well.
$(function() {
$.mktag("#demo").jsonimal([
["h1", {text: "JSONimal!"}],
["table",{style: 'border: 1px solid black'},[
["thead",[
["tr",{style: 'text-transform: uppercase'},[
["th", {text: "one"}],
["th", {text: "two"}],
["th", {text: "three"}]
]]
]],
["tbody", [
["tr",[
["td", {html: "<u>a</u>"}],
["td", {text: "b"}],
["td", {text: "c"}]
]],
["tr",[
["td",[
["a", {href: "http://www.google.ca", text: "Google"}]
]],
["td", {text: "b"}],
["td", {text: "c"}]
]],
["tr",[
["td", {text: "a"}],
["td", {text: "b"}],
["td", {text: "c"}]
]]
]]
]]
]).appendTo("body");
});
Which will add this to the body:
JSONimal!
one | two | three |
---|---|---|
a | b | c |
b | c | |
a | b | c |
For more information and examples, check out the github page: JSONimal @ github.
I also posted it as on the jQuery plugins page - but that just points to the github page anyway. JSONimal @ plugins.jquery.com