簡體   English   中英

為什么.html()不能與使用jquery的SVG選擇器一起使用?

[英]Why .html() doesn't work with SVG selectors using jquery ?

問題可以有人告訴我如何將我的SVG元素轉換為字符串?

我正在使用canvg將我的SVG轉換為圖像。

它必須先在畫布中渲染, canvg()方法需要SVG STRING

代碼:

  function updateChartImage(){
        canvg(document.getElementById('canvas'),expecting ` svg string`);
       var canvas = document.getElementById("canvas") ; 
       var img = canvas.toDataURL("image/png");
       img = img.replace('data:image/png;base64,', '');
       $("#hfChartImg").val(img) ;
       $('#img').attr({ src: img });
        }

我試過了

$('#container svg').html() ; // it gives me an error 
//Uncaught TypeError: Cannot call method 'replace' of undefined 

注意到

  $('#container svg') 
  $('#container').html() // both works fine and

更新

我正在使用highcharts有一個getSVG()函數,我可以傳遞給canvg(),但問題是它沒有得到最新的更新,所以我必須這樣做,當運行getSVG()函數時我得到以下內容: 在此輸入圖像描述

鏈接

據我所知,jQuery的.html()使用的是innerHTML ,它適用於html,而不是svg。 SVG是xml文檔,因此您可以使用XMLSerializer()

var svg = document.getElementById('svg_root'); // or whatever you call it
var serializer = new XMLSerializer();
var str = serializer.serializeToString(svg);

對於這個問題,你沒有得到你的svg內容,
如果頁面上只有一個svg圖表,那么使用:

$('svg').html();

如果超過現在,那么請看看有一個highcharts_container div,因為他們創建了svg圖表。 如果你正在使用它們。
然后使用:

$('id of that div').html();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM