2014-02-12 54 views
0

JAVASCRIPT:jQuery的.SVG( '得到')返回undefined

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
    <script type="text/javascript" src="js/jquery.svg.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      var svg = $('#svgContainer').svg('get'); 
      console.log(svg); //Returns 'undefined' 
     }); 
    </script> 

HTML:

<div id="svgContainer"> 

    <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
     width="900px" height="300px" viewBox="0 0 900 300" enable-background="new 0 0 900 300" xml:space="preserve"> 
     <rect x="48" y="15" fill="#0071BC" width="259" height="259"/> 
     <rect x="195" y="85" fill="#22B573" width="354" height="142"/> 
     <rect x="498" y="21" opacity="0.5" fill="#D9E021" width="190" height="256"/> 
     <rect x="606" y="45" fill="#0071BC" width="247" height="121"/> 
    </svg> 

</div> 

任何想法,爲什麼它不返回任何東西?這裏是documentation,但它沒有太大的幫助。 (我也試圖與一個SVG對象,而不是在線)

+1

根據您鏈接的文檔,首先需要'$( '#svgContainer')SVG();' – ariel

+0

我想。它不能'獲得'現有的svg對象,只有在代碼中創建的東西。不知道 – ariel

+0

謝謝,我不知道我是如何錯過的......我猜,已經很晚了。 –

回答

2

一切之前,調用svg()與SVG jQuery對象上,然後做你想要的東西:

var svg = $('#svgContainer').svg(); 
console.log(svg.svg('get')); 
// Logs SVG instance 

JSBin

1

這應該修復它(引進here說明這一點):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.svg.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#svgContainer').svg(); 
     var svg = $('#svgContainer').svg('get'); 
     console.log(svg); //Returns 'undefined' 
    }); 
</script>