Will Bonde
Will Bonde

Reputation: 538

Javascript DOM Document createElement from tag source

Is there a way to create a new element in a Document object from the tag source? Essentially what I'd like to do is something to effect of:

myDocument.createElement('<sometag attr="lol">');

Upvotes: 0

Views: 1190

Answers (3)

jAndy
jAndy

Reputation: 235962

No, native DOM API for .createElement doesn't support that syntax. You need to create the plain Element and set any property either directly on the object

newElem.attr = "lol";

or (better), use .setAttribute()

newElem.setAttribute( 'attr', 'lol' );

What you "could" do is do create a documentFragment, then use .innerHTML to write that string into that fragment and finally .append its contents to its target destination.

Upvotes: 2

Stephen
Stephen

Reputation: 5450

The innerHTML property works here - but it's a tad bit difficult to place the thing where you want it sometimes. For example:

var div = document.createElement('div');
div.innerHTML = "<img src='http://www.google.com/logos/classicplus.png'/>";

In my humble opinion, it's a heck of a lot easier to use jQuery to handle it for you, as it comes with all of the jQuery methods already attached.

var div = $("<div class='blah'><img src='http://www.google.com/logos/classicplus.png'/></div>");
div.find('img').hide();
div.appendTo('body');
div.find('img').fadeIn();

Upvotes: 0

Jerome Cance
Jerome Cance

Reputation: 8183

well, use innerHTML instead of trying to hack dom manipulation for this kind of thing.

To do so, create a valid node with dom if you want (or get it via getElementById), then set innerHTML of this node with your code

Upvotes: 0

Related Questions