<!DOCTYPE html> <html> <head> <script> function boom() { var table = document.getElementById("table"); var newCaption = document.createElement('caption'); newCaption.appendChild(document.createTextNode("THIS SHOULD BE VISIBLE")); table.appendChild(newCaption); table.appendChild(document.createElement("tbody")); } </script> </head> <body onload="boom();"> <table id="table"></table> </body> </html>