2013-02-07 6 views
20

javascriptを使用してSVG要素を作成していますが、うまく機能しますが、テキストのsvg要素を作成して内容を定義すると、ブラウザは値を表示しません私が火かぶ虫でそれを検査するときコードで。javascriptを使ってテキストsvg要素を動的に設定する

コードは次のとおりです。

var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); 
svg.setAttribute('xlink','http://www.w3.org/1999/xlink'); 
svg.setAttribute('width','187'); 
svg.setAttribute('height','234'); 

var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); 
rect.setAttribute('width','187'); 
rect.setAttribute('height','234'); 
rect.setAttribute('fill','#fff'); 
rect.setAttribute('stroke','#000'); 
rect.setAttribute('stroke-width','2'); 
rect.setAttribute('rx','7'); 

var text = document.createElementNS('ttp://www.w3.org/2000/svg', 'text'); 
text.setAttribute('x', '10'); 
text.setAttribute('y', '20'); 
text.setAttribute('fill', '#000'); 
text.textContent = '2'; 

svg.appendChild(rect); 
svg.appendChild(text); 

var wp = document.getElementById('wrapper'); 
wp.appendChild(svg); 

ここjsfiddleリンクhttp://jsfiddle.net/sAhyC/ は、あなたがSVGを調べる場合は、そこにテキスト要素の値が表示されますが、ブラウザはそれをレンダリングしていないです。

おかげ

+0

私の推測では、ここでは「動的」は問題ではないということです。 –

答えて

11

あなたの名前空間に "H" 足りない

var text = document.createElementNS('ttp://www.w3.org/2000/svg', 'text'); 

var text = document.createElementNS('http://www.w3.org/2000/svg', 'text'); 
+0

うん!そのとおり!私はそのコードを何度も読んだことがありますが、私はそれに気づいていませんでした。どうもうありがとう –

6
function createText() { 

    var newText = document.createElementNS(svgNS,"text"); 
    newText.setAttributeNS(null,"x",20);  
    newText.setAttributeNS(null,"y",100); 
    var textNode = document.createTextNode("milind morey"); 
    newText.appendChild(textNode); 
    document.getElementById("firstGroup").appendChild(newText); 
} 

する必要がありました0
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">  
     <g id="firstGroup"> 

    <text x="20" y="45" onclick="createText();" font-size=+13px">Click on this text to create a new text.</text> 

    </g> 
     </svg> 
関連する問題