2014-10-27 55 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