Ответ 1
Для SVG я использовал Keith Wood jquery.svg для некоторых проектов типа оценки.
Что такое 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
расположен, удален и заменен новым прямоугольником.
Для SVG я использовал Keith Wood jquery.svg для некоторых проектов типа оценки.
Что такое 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.