2014-10-27 27 views

回答

3

你可以用通常的DOM方法,如querySelectorgetElementsByTagNamegetElementsByClassName,...

function randHexColor() { // Be aware it can produce invalid colors 
 
    return '#' + (Math.random()*Math.pow(2,8*3)|0).toString(16); 
 
} 
 
var svg = document.getElementById('svg'), 
 
    paths = svg.querySelectorAll('.myClass > path'); 
 
for(var i=0; i<paths.length; ++i) { 
 
    paths[i].style.fill = randHexColor(); 
 
}
<svg id="svg" height="200" width="350"> 
 
    <g class="myClass" transform="scale(50)" fill="orange" > 
 
    <path d="M 1,1 3,1 2,3 Z" /> 
 
    <path d="M 4,1 6,1 5,3 Z" /> 
 
    </g> 
 
</svg>

+0

我想这种方法适用于我的具体情况,但我得到的错误,只是说功能没有定义。你确定这个方法在svg处于外部加载的对象标签中时工作吗? – 2014-10-27 02:17:12

+0

@Iatesometau你应该发布你用来加载svg的代码。 – Oriol 2014-10-27 02:22:52

+0

不,它们的起源相同。做更多谷歌搜索,将回来几个。 – 2014-10-27 02:24:39