我想更改rect
<clipPath xmlns="http://www.w3.org/2000/svg" id="svge-1">
<rect fill="none" x="0" y="0" width="761" height="231" />
</clipPath>
根据这个http://tutorials.jenkov.com/svg/scripting.html#changing-attribute-values,它应该很简单,但问题是rect
这里没有id
。
如何向其添加id
或访问此处height
的{{1}}?
答案 0 :(得分:1)
还有其他几种使用DOM检索元素的方法。
您可以使用getElementById('svge-1')
获取父元素,并在该元素的上下文中使用rect
获取名为getElementsByTagName
的元素。这将为您提供第一个(也是唯一的)rect
元素:
var clipPathElement = document.getElementById("svge-1");
var rectElement = clipPathElement.getElementsByTagName("rect")[0];
您还可以使用DOM属性来获取子元素,并使用children
忽略其名称。这将为您提供第一个元素,即rect
:
var rectElement = clipPathElement.children[0];
您也可以使用childNodes
,但您必须获取第二个对象(childNodes[1]
),因为它包含所有节点(不仅仅是元素),其中包含标签前的空白文本节点。
从那里你可以改变你想要的任何属性:
rectElement.setAttribute("height", "100");
这是一个 JSFiddle ,附带一个工作示例。