Подтвердить что ты не робот

Что такое jQuery для Document.createElementNS()?

Что такое jQuery для Document.createElementNS()?

function emleGraphicToSvg(aGraphicNode) {
  var lu = function luf(aPrefix){
    switch (aPrefix){
      case 'xhtml': return 'http://www.w3.org/1999/xhtml';
      case 'math':  return 'http://www.w3.org/1998/Math/MathML';
      case 'svg':   return 'http://www.w3.org/2000/svg';
      }
    return '';
    };
  var svg = document.evaluate("svg:svg",
    aGraphicNode, lu, XPathResult.FIRST_ORDERED_NODE_TYPE, null).
    singleNodeValue;
  $(svg).children().remove();
  rect = document.createElementNS(lu('svg'), "rect");
  rect.setAttribute("x", "35");
  rect.setAttribute("y", "25");
  rect.setAttribute("width", "200");
  rect.setAttribute("height", "50");
  rect.setAttribute("class", "emleGraphicOutline");
  svg.appendChild(rect);
  }

Код является упрощенным фрагментом из Emle - Electronic Mathematics Laboratory Equipment Файл JavaScript emle_lab.js.

Функция Look-Up, luf(), отображает полную ссылку на сокращенное имя пространства имен в строке XPath и createElementNS(). Существующий svg:svg расположен, удален и заменен новым прямоугольником.

4b9b3361

Ответ 1

Для SVG я использовал Keith Wood jquery.svg для некоторых проектов типа оценки.

Ответ 2

Что такое jQuery для Document.createElementNS()?

Это будет:

$(document.createElementNS('namespace', 'tag'))

Итак, в случае OP:

rect = $(document.createElementNS(lu('svg'), 'rect'))
    .addClass('emleGraphicOutline')
    .attr({
        x: 35,
        y: 25,
        width: 200,
        height: 50
    });

Но на самом деле этого не получается, конечно, используя jQuery. В любом случае, всегда можно обернуть узлы DOM в jQuery, например. $(rect) после создания rect с ванили JS.

Обратите внимание, что у jQuery есть другие проблемы с SVG, такие как разрыв viewBox из-за атрибутов нижнего индекса, поэтому для некоторых атрибутов все равно использовать обычный JS.