我应该如何正确使用 setAttribute() 方法?
How should I properly use setAttribute() method?
我有一个 svg 元素,我正在使用 createElement() 方法向其添加一个 rect 元素,然后使用 setAttribute() 方法为其指定宽度和高度。
var svg = document.querySelector("svg");
function addRect(side) {
var newRect = document.createElement("rect");
svg.appendChild(newRect);
var thisRect = svg.lastChild;
thisRect.setAttribute("width", side);
thisRect.setAttribute("height", side);
}
addRect("100");
http://codepen.io/stromqvist/pen/YWZpNb
chrome 开发工具中的结果显示 <rect width="100" height="100"></rect>
,但矩形没有任何尺寸。
我做错了什么?
创建 SVG 元素时,您将使用 createElementNS 来创建具有限定命名空间的元素,例如 SVG 元素
document.createElementNS("http://www.w3.org/2000/svg", "svg");
对于某些属性,您可以使用 setAttributeNS,但对于宽度和高度等常规属性,setAttribute 应该有效
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");
我有一个 svg 元素,我正在使用 createElement() 方法向其添加一个 rect 元素,然后使用 setAttribute() 方法为其指定宽度和高度。
var svg = document.querySelector("svg");
function addRect(side) {
var newRect = document.createElement("rect");
svg.appendChild(newRect);
var thisRect = svg.lastChild;
thisRect.setAttribute("width", side);
thisRect.setAttribute("height", side);
}
addRect("100");
http://codepen.io/stromqvist/pen/YWZpNb
chrome 开发工具中的结果显示 <rect width="100" height="100"></rect>
,但矩形没有任何尺寸。
我做错了什么?
创建 SVG 元素时,您将使用 createElementNS 来创建具有限定命名空间的元素,例如 SVG 元素
document.createElementNS("http://www.w3.org/2000/svg", "svg");
对于某些属性,您可以使用 setAttributeNS,但对于宽度和高度等常规属性,setAttribute 应该有效
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");