By id
SVG.get()
returns SVG.Element(或的最相关子类SVG.Element)
如果要按其ID获取SVG.js创建的元素,可以使用以下SVG.get()方法:
var element = SVG.get('my_element')
element.fill('#f06')
使用CSS选择器
SVG.select()
returns SVG.Set
这将搜索文档中的所有svg元素,并在的实例中返回它们SVG.Set:
var elements = SVG.select('rect.my-class').fill('#f06')
此外,可以传递第二个参数来定义要在其中搜索的父元素:
var elements = SVG.select('rect.my-class', group).fill('#f06')
element.select()
returns SVG.Set
与SVG.select()相似,也可以在子元素中选择元素:
var elements = group.select('rect.my-class').fill('#f06')
从继承的所有父类都可以使用此方法SVG.Parent。
现有的DOM元素
SVG.adopt()
returns SVG.Element
如果希望SVG.js采用现有的DOM元素,则可以使用以下SVG.adopt()方法:
var polygon = document.createElement('polygon')
var element = SVG.adopt(polygon)
element.fill('#f06')
使用jQuery或Zepto
// add elements
var draw = SVG('drawing')
var group = draw.group().addClass('my-group')
var rect = group.rect(100,100).addClass('my-element')
var circle = group.circle(100).addClass('my-element').move(100, 100)
// get elements in group
var elements = $('#drawing g.my-group .my-element').each(function() {
this.instance.animate().fill('#f09')
})
循环参考
SVG.js中的每个元素实例都有一个对real的引用node。
node 节点
returns SVGElement
element.node
native()
returns SVGElement
element.node
instance 实例
returns SVG.Element
类似地,node带有对SVG.js的引用instance:
node.instance
注意返回值的差异。
该node引用原生SVGElement而instance引用的SVG.Element实例。
Child references 子引用
children()
returns array
可以使用以下children方法检索所有子级的数组:
draw.children()
clear()
returns itself
要从父元素中删除所有元素:
draw.clear()
each()
returns itself
将each()让您遍历父元素的所有孩子:
draw.each(function(i, children) {
this.fill({ color: '#f06' })
})
通过将true作为第二个参数传递,也可以进行深度遍历:
// draw.each(block, deep)
draw.each(function(i, children) {
this.fill({ color: '#f06' })
}, true)
注意:this是指当前的子元素。
first()
returns SVG.Element
要获取父元素的第一个子项:
draw.first()
get()
returns SVG.Element
获取子数组中给定位置的元素:
var rect = draw.rect(20, 30)
var circle = draw.circle(50)
draw.get(0) //-> returns rect
draw.get(1) //-> returns circle
has()
returns boolean
检查父元素中元素的存在:
var rect = draw.rect(100, 50)
var group = draw.group()
draw.has(rect) //-> returns true
group.has(rect) //-> returns false
index()
returns number
返回给定元素的索引,如果不是子元素,则返回-1:
var rect = draw.rect(100, 50)
var group = draw.group()
draw.index(rect) //-> returns 0
group.index(rect) //-> returns -1
last()
returns SVG.Element
要获取父元素的最后一个子元素,请执行以下操作:
draw.last()
Parent references 父引用
每个元素都使用方法引用其父元素parent():
doc()
returns SVG.Doc
要获取根SVG,可以使用 doc()
var draw = SVG('drawing')
var rect = draw.rect(100, 100)
rect.doc() //-> returns draw
svg文档中的 parent()
returns SVG.Element
element.parent()
或者,可以将类或css选择器作为第一个参数传递:
var draw = SVG('drawing')
var nested = draw.nested().addClass('test')
var group = nested.group()
var rect = group.rect(100, 100)
rect.parent() //-> returns group
rect.parent(SVG.Doc) //-> returns draw
rect.parent(SVG.Nested) //-> returns nested
rect.parent(SVG.G) //-> returns group
rect.parent('.test') //-> returns nested
最顶层的svg文档上的 parent()
returns HTMLNode
var draw = SVG('drawing')
draw.parent() //-> returns the wrappig html element with id 'drawing'
parents() 父项
returns array
获取按类型或CSS选择器过滤的元素的所有祖先(请参见parent()方法)
var group1 = draw.group().addClass('test')
, group2 = group1.group()
, rect = group2.rect(100,100)
rect.parents() // returns [group1, group2, draw]
rect.parents('.test') // returns [group1]
rect.parents(SVG.G) // returns [group1, group2]
URI参考
如果一个元素通过属性链接到另一个元素,则可以使用该reference()方法来获取链接的元素实例。
reference()
returns SVG.Element
唯一需要的是属性名称:
use.reference('href') //-> returns used element instance
// or
rect.reference('fill') //-> returns gradient or pattern instance for example
// or
circle.reference('clip-path') //-> returns clip instance