JQuery .before()添加html块转义

I just want to add a html block using .before() fucntion of JQuery here is the block :

$buttonValue = '<div class="addthis_toolbox addthis_default_style" '.$str .'>
                 <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
                 <a class="addthis_button_tweet"></a>
                 <a class="addthis_button_pinterest_pinit" pi:pinit:layout="horizontal"></a>
                 <a class="addthis_counter addthis_pill_style"></a>
               </div>';

and here is the Script that I use it :

    $script  = "(function($){
";
    $script  .= "$(document).ready(function(){
";            
    $script  .= "$( \".prod-view\" ).before( \"$buttonValue\" );";
    $script .=      "});    
";
    $script .=      "})(jQuery);" ;

I have already tried php addslashes() function, but with no luck

Try this,

$buttonValue = '<div class="addthis_toolbox addthis_default_style" '.$str .'><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_pinterest_pinit" pi:pinit:layout="horizontal"></a><a class="addthis_counter addthis_pill_style"></a></div>';

SCRIPT

$script  = "(function($){
";
    $script  .= "$(document).ready(function(){
";            
    $script  .= "$( \".prod-view\" ).before( '$buttonValue' );";
    $script .=      "});    
";
    $script .=      "})(jQuery);" ;

Differences from you code is make the html in single line, otherwise it make a js error. And then use semicolon in .before()