4

更新しました:

実際のコードを使用させてください....私はこのjavascriptを持っています...

window.writeText = function(form) {
  var text;
  form.catnumber2.value = "PING";
  text = document.getElementByName('cat2Number').innerHtml;
  return alert(text);
};

しかし、期待どおりにアラートボックスが表示されません。

ビュー/開発者/ソースの表示を介してソースを表示すると、svgが表示されません(私はクロムにいます)が、ビュー/開発者/開発者ツールを使用すると....次のsvgが表示されます....

<svg height="594">
    <g ID="MasterG">
        <text name="cat2Number">"$1234"</text>
    </g>
</svg>

私が間違っていることは何か分かりますか?「ソースの表示」では svg コードが表示されないのに、「開発者ツール」では表示されるのはなぜですか? それが私の問題の原因ですか?アラートボックスが「アラート」しないのはそのためですか?

4

3 に答える 3

5

数秒グーグルでこれを見つけた後https://stackoverflow.com/a/9602772/1217408

この JSFiddle の使用例を作成しましたtextContent: http://jsfiddle.net/hVyTJ/1/

元のhttp://jsfiddle.net/hVyTJ/は、標準の DOM トラバーサルを使用して、ルート SVG 要素からテキスト要素に到達します。更新は ID によってテキスト要素を直接ターゲットにします。

getAttributeNSここで説明されているように使用できる属性値の検索については、http: //www.carto.net/svg/manipulating_svg_with_dom_ecmascript/

編集:

Phrogz が指摘したように、getAttribute多くの場合、単純な呼び出しで十分です。詳細については、コメントをお読みください。

于 2012-07-30T20:12:02.617 に答える
1

要素text()のテキスト コンテンツを返すために呼び出すことができます。svg:text

// assume svgCont is an svg element
var label = svgCont.append("svg:text").text("hello, world!");

// print the text content to the console
console.log( label.text() );
于 2013-04-20T00:35:40.250 に答える