Question

I'm trying to run this code, but it breaks my entire page. The page is marked up like this:

<script type="text/javascript">
$(document).ready(function() {
  $("#right_column h1").each( function() {  
   var link = $(this).html()+"<br />";
   document.write(link); 
});
});
</script>
<div id="right_column">
<h1>Company Profile</h1>
blablablablabla<br />

<h1>Nulla turpis nunc, dapibus ultricies.</h1>
blablablabla<br />
<h1>Pellentesque habitant morbi tristique proin laoreet.</h1>
blablablabla<br />

When i try to run the code, it only shows me the content of the 3 h1's, the rest of the page (the h1 themselves) aren't loaded anymore. When i remove the $(document).ready() function, and put the script block after everything, it works just fine.

Was it helpful?

Solution

Don't use document.write after the document is read.

If you want to append to the page, do this :

  $(document).ready(function() {
     $("#right_column h1").each( function() {  
       var link = $(this).html()+"<br />";
       $(document.body).append($(link));   
     });
   });

OTHER TIPS

I will use something like this:

<script type="text/javascript">
$(document).ready(function() {
  $("#right_column h1").each( function() {  
   var link = $(this).html()+"<br />";
   $("#container-element").html('<a href="' + link + '">TEXT-YOU-WANT</a>');
});
});
</script>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top