将文本放置在svg的中心

Placing text in the center of svg

本文关键字:svg 文本      更新时间:2023-09-26

我正在创建一个<svg>,我想把文本放在<svg>的中心,当我点击第一个按钮时,svg没有文本,当我单击第二个按钮时会显示文本。第一个我只是添加svg的位置。但我不知道为什么文本没有出现?

谢谢

$(document).ready(function() {
  $('#testbtm').click(function() {
    var str = '<svg class="hexagon" class="ui-widget-content" style="position:absolute; left:200; top:300;"'
            <text fill="black" x=75 y=75 style="text-anchor: middle">1</text>'
            <path d="M38 0 L113 0 L150 65 L113 130 L38 130 L0 65 Z" / fill="none" stroke="blue"></svg>'
    var svgElement = $(str);
    svgElement.children('text').text(1);
    svgElement.attr("class", "hexagon ui-widget-content");
    $("#display").append(svgElement);
  }); //end click	
  $('#testbtm2').click(function() {
    $('.hexagon').each(function() {
      var svgElement = $('<svg class="hexagon" class="ui-widget-content">'
            <text fill="black" x=75 y=75 style="text-anchor: middle">1</text>'
            <path d="M38 0 L113 0 L150 65 L113 130 L38 130 L0 65 Z" / fill="none" stroke="blue"></svg>');
      svgElement.children('text').text(1);
      svgElement.attr("class", "hexagon ui-widget-content");
      $("#display").append(svgElement);
    });
  }); // end click
}); // end ready
#display {
  height: 500 px;
  width: 500 px;
  border: 1 px solid black;
  overflow: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="display"></div>
<button id="testbtm">test</button>
<button id="testbtm2">test2</button>

在打开的svg标记上缺少一个右括号>