Добавление элемента SVG с помощью jquery append - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь создать график, используя элемент svg, а затем добавляю прямоугольный элемент для каждого столбца графика в al oop.

Как передать переменную "moveBar" в оператор .append, чтобы настроить атрибут width прямоугольного элемента?

        $(document).ready(function () {
            var ulEmployees = $('#ulEmployees');
            var moveBar = 0;

            $('#btn').click(function () {
                $.ajax('api/AnnualPowerInterruptions', {
                    dataType: 'json',
                    success: function (data) {
                        ulEmployees.empty();
                        $('#graphData2').append("<svg id=mySVG class='chart' width='500' height='500'></div>");
                        $.each(data, function (index, val) {
                            var name = val.year;
                            ulEmployees.append('<li>' + name + '</li>');
                            $('#mySVG').append("<g transform='translate (100, 0)'><rect width=moveBar 'height='40' style='fill:red'> </rect> <text x='-50' y='30' fill='red'> blue </text></g>");
                            window.alert(moveBar);
                            moveBar = moveBar + 50;
                        });
                        $("#graphData2").html($("#graphData2").html())
                    }

                });

            });
            <div id="graphData2">
            </div>

1 Ответ

1 голос
/ 07 марта 2020

Вы можете использовать Шаблонные литералы , чтобы назначить значение переменной для вашего прямоугольного тега следующим образом:

$(document).ready(function() {
  var ulEmployees = $("#ulEmployees");
  var moveBar = 0;

  $("#btn").click(function() {
    $.ajax("api/AnnualPowerInterruptions", {
      dataType: "json",
      success: function(data) {
        ulEmployees.empty();
        $("#graphData2").append(
          "<svg id=mySVG class='chart' width='500' height='500'></div>"
        );
        $.each(data, function(index, val) {
          var name = val.year;
          ulEmployees.append("<li>" + name + "</li>");
          $("#mySVG").append(
            `<g transform='translate (100, 0)'><rect width=${moveBar} 'height='40' style='fill:red'> </rect> <text x='-50' y='30' fill='red'> blue </text></g>`
          );
          window.alert(moveBar);
          moveBar = moveBar + 50;
        });
        $("#graphData2").html($("#graphData2").html());
      }
    });
  });
});
<div id="graphData2">
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...