By id
SVG.get()
returns
SVG.Element
(或的最相關(guān)子類SVG.Element
)
如果要按其ID獲取SVG.js創(chuàng)建的元素,可以使用以下SVG.get()
方法:
var element = SVG.get('my_element')
element.fill('#f06')
使用CSS選擇器
SVG.select()
returns
SVG.Set
這將搜索文檔中的所有svg元素暴匠,并在的實(shí)例中返回它們SVG.Set
:
var elements = SVG.select('rect.my-class').fill('#f06')
此外鞍恢,可以傳遞第二個(gè)參數(shù)來(lái)定義要在其中搜索的父元素:
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
每窖。
現(xiàn)有的DOM元素
SVG.adopt()
returns
SVG.Element
如果希望SVG.js采用現(xiàn)有的DOM元素帮掉,則可以使用以下SVG.adopt()
方法:
var polygon = document.createElement('polygon')
var element = SVG.adopt(polygon)
element.fill('#f06')
使用jQuery或Zepto
另一種方法是使用jQuery或Zepto。這是一個(gè)例子:
// 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')
})
循環(huán)參考
SVG.js中的每個(gè)元素實(shí)例都有一個(gè)對(duì)real的引用node
窒典。
node 節(jié)點(diǎn)
returns
SVGElement
element.node
native()
returns
SVGElement
element.node
instance 實(shí)例
returns
SVG.Element
類似地蟆炊,node
帶有對(duì)SVG.js的引用instance
:
node.instance
注意返回值的差異。
該node
引用原生SVGElement
而instance
引用的SVG.Element
實(shí)例瀑志。
Child references 子引用
children()
returns
array
可以使用以下children
方法檢索所有子級(jí)的數(shù)組:
draw.children()
clear()
returns
itself
要從父元素中刪除所有元素:
draw.clear()
each()
returns
itself
將each()
讓您遍歷父元素的所有孩子:
draw.each(function(i, children) {
this.fill({ color: '#f06' })
})
通過(guò)將true作為第二個(gè)參數(shù)傳遞涩搓,也可以進(jìn)行深度遍歷:
// draw.each(block, deep)
draw.each(function(i, children) {
this.fill({ color: '#f06' })
}, true)
注意:this
是指當(dāng)前的子元素。
first()
returns
SVG.Element
要獲取父元素的第一個(gè)子項(xiàng):
draw.first()
get()
returns
SVG.Element
獲取子數(shù)組中給定位置的元素:
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
要獲取父元素的最后一個(gè)子元素,請(qǐng)執(zhí)行以下操作:
draw.last()
Parent references 父引用
每個(gè)元素都使用方法引用其父元素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選擇器作為第一個(gè)參數(shù)傳遞:
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() 父項(xiàng)
returns
array
獲取按類型或CSS選擇器過(guò)濾的元素的所有祖先(請(qǐng)參見(jiàn)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參考
如果一個(gè)元素通過(guò)屬性鏈接到另一個(gè)元素,則可以使用該reference()
方法來(lái)獲取鏈接的元素實(shí)例常侦。
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