JS - getElementsByClassName数组,然后获取数组内的元素

时间:2015-01-02 19:07:42

标签: javascript

我有一个带有几个rects的svg脚本:

<g class="1">
    <rect x="80.181" y="156.8" width="64.394" height="54.973"/>
</g>
<g class="2">
    <rect x="147.067" y="156.8" width="23.89" height="54.973"/>
</g>
<g class="1">
    <rect x="173.45" y="156.8" width="22.433" height="54.973"/>
</g>
<g class="3">
    <rect x="198.375" y="156.8" width="39.668" height="54.973"/>
</g>

(...)

我想创建一个函数来定义类中所有rects的填充,例如,1。类似于:

function FillRect() {
    var rect = document.getElementsByClassName('1');

    for (var i = 0; i < rect.length; i++) {
        document.rect[i].querySelector('rect').style.fill="blue";
    }
}

我不知道如何做最后document.rect[i].querySelector部分。

3 个答案:

答案 0 :(得分:2)

您可以这样做:

var rect = document.querySelectorAll(".1 rect");
for (var i = 0; i < rect.length; i++) {
    rect[i].style.fill="blue";
}

答案 1 :(得分:1)

您不需要引用文档对象。

function FillRect() {
    var rect = document.getElementsByClassName('1');

    for (var i = 0; i < rect.length; i++) {
        rect[i].querySelector('rect').style.fill="blue";
    }
}

答案 2 :(得分:0)

function FillRect(){     var rect = document.getElementsByClassName(&#39; 1&#39;);

for (var i = 0; i < rect.length; i++) {
    rect[i].getElementsByTagName('rect').style.fill="blue";
}}

这应该做你想要的。如果你愿意,你可以考虑使用jQuery。