8

is there a way to convert a javascript HTML object to a string? i.e.

var someElement = document.getElementById("id");
var someElementToString = someElement.toString();

thanks a lot in advance

bombo
  • 1,781
  • 6
  • 22
  • 25

5 Answers5

17

If you want a string representation of the entire tag then you can use outerHTML for browsers that support it:

var someElementToString = someElement.outerHTML;

For other browsers, apparently you can use XMLSerializer:

var someElement = document.getElementById("id");
var someElementToString;

if (someElement.outerHTML)
    someElementToString = someElement.outerHTML;
else if (XMLSerializer)
    someElementToString = new XMLSerializer().serializeToString(someElement); 
Community
  • 1
  • 1
Andy E
  • 338,112
  • 86
  • 474
  • 445
2

You can always wrap a clone of an element in an 'offscreen', empty container. The container's innerHTML is the 'outerHTML' of the clone- and the original. Pass true as a second parameter to get the element's descendents as well.

document.getHTML=function(who,deep){ 
 if(!who || !who.tagName) return '';
 var txt, el= document.createElement("div");
 el.appendChild(who.cloneNode(deep));
 txt= el.innerHTML;
 el= null;
 return txt;
}
kennebec
  • 102,654
  • 32
  • 106
  • 127
1
someElement.innerHTML
Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
  • but in that case i will get the contents of the
    tag and not the tag itself, i.e. if i have
     
    then by using .innerHTML i get " " and not '
     
    '
    – bombo Mar 18 '10 at 13:33
0

As Darin Dimitrov said you can use element.innerHTML to display the HTML element childnodes HTML. If you are under IE you can use the outerHTML propoerty that is the element plus its descendants nodes HTML

Gregoire
  • 24,219
  • 6
  • 46
  • 73
-1

You just have to create one variable then store value into it. As in one my project I have done the same thing and it works perfectly.

var message = ""; 
message = document.getElementById('messageId').value;

test it.. It will definitely work.

j08691
  • 204,283
  • 31
  • 260
  • 272
YASH
  • 11