javascript
  • jquery
  • html
  • 2015-09-30 30 views 0 likes 
    0

    我想製作一個動態HTML,我將在追加前使用jquery追加,如果我將控制HTML一切看起來不錯,但在瀏覽器中追加後整個結構都搞砸了。JS中的HTML串聯問題

    這裏是我的HTML:

    <script> 
    var title = "my title"; 
    
    var toolbar ='<hm_toolbar user="current_user " upp="hm" index="hmIndex "></hm><synapse_toolbar uuid=" hm.hm_pk " my-method="get_linked_facts" ng-if=" flag == true "></synapse_toolbar>'; 
    
    var map_html = '<a onclick="panToMarker(' + lat + ',' + long + ')"> ' + title +'"</a>' + toolbar ; 
    
    var li_html = "$('#" + title + "').append('<li class=\"list-group-item\"><div dynamic=\" " + map_html + " \"></div></li> ')" ; 
    
    var g =title.replace(/ /g,"_");; 
    
    var fn = "function "+ g +"(){ console.log('--working--'); "+ li_html +"; }"; 
        console.log(fn) 
        eval(fn); 
        } 
        </script> 
    

    當上述li_HTML並對其工作表示追加附加的是全亂了

    追加HTML代碼的HTML:

    <li class="list-group-item"><div pantomarker(49.711083,6.251445)"="" dynamic=" &lt;a onclick="> Test"<hm_toolbar index="hmIndex " upp="hm" user="current_user "></hm_toolbar><synapse_toolbar ng-if=" flag == true " my-method="get_linked_facts" uuid=" hm.hm_pk "></synapse_toolbar> "&gt;</div></li> 
    

    我知道我用引號搞亂了連接,但我無法修復這個bug。

    +0

    試圖逃避串裏面你的'''字符。這樣做:'var li_html =「$(\'#」+ title +「\')。append(\'

  • \')」; ' – Vance

    +0

    @Vance nop,沒有運氣 – saf

    +0

    @saf有「報價是在var map_html =' ' + title +'"'+工具欄;我認爲這是造成問題 –

    回答

    1

    你說的console.log()看起來不錯,但你有eval()之後,這意味着你必須逃避一些報價兩次。

    試試這個:

    var toolbar ='<hm_toolbar user=\\\'current_user \\\' upp=\\\'hm\\\' index=\\\'hmIndex \\\'></hm><synapse_toolbar uuid=\\\' hm.hm_pk \\\' my-method=\\\'get_linked_facts\\\' ng-if=\\\' flag == true \\\'></synapse_toolbar>'; 
    
    var map_html = '<a onclick=\\\'panToMarker(' + lat + ',' + long + ')\\\'> ' + title +'</a>' + toolbar ; 
    
    相關問題