1、先获取svg的dom信息
let svgDom= document.getElementById('id名').getSVGDocument()
let svgObj =$(svgDom).children("svg")//获取svg标签
let svgDefs =$(svgDom).children("defs")//获取defs标签
let svgGDom =$(svgObj).children("g")// 获取svg内的g标签
//先写一个获取子节点的通用函数
getElementNode(parent,nodeName){
let node = null
$.each(parent.children,function(index,item){
if(item == null){
return true
}
let childNodeName= item.nodeName
if(childNodeName == null){
return true
}
if(nodeName.indexOf(childNodeName)>-1){
node = item
return false //停止each函数
}
return node //返回相应的node
})
}
//each函数 对一个数组值进行遍历,这里是遍历dom这也是each函数常见的使用情况
$.each(svgDom,function(index,item){
// 获取text标签 这里更改text的内容
let Gtext =getElementNode(item,"text")
if(Gtext){
Gtext.textContent = Gtext.textContent.replace('你需要替换的字段','替换后的文字')//整体替换就将textContent重写
}
// 获取line标签
let Gline =getElementNode(item,'line')
if(Gline){
// attributes可以获取全部的dom信息,line这里举例修改颜色(stroke)内容
Gline.attributes['stroke'].value= '#fff'
}
})