5

特定の div 内のリンクをターゲットにしようとしています。次のように、すべてのリンクをターゲットにする方法を理解しています。

var colors = [ 'BlueViolet', 'CadetBlue', 'Coral', 'Crimson', 'DarkGoldenRod', 'DarkOliveGreen'],
    a = document.getElementsByTagName('a');

for(var i = 0; i < a.length; i++) {
    var elem = a[i],
        color = colors[0];
    elem.style.color = color;
    colors.push(color);
    colors.shift();
}

明らかに、すべてのリンクをターゲットにしています: http://lexicantest.tumblr.com/

特定の ID/クラス内のすべてのリンクをターゲットにする方法はありますか?

4

1 に答える 1

17

ID の場合:

var a = document.getElementById('divYouwant').getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
    var elem = a[i],
        color = colors[0];
    elem.style.color = color;
    colors.push(color);
    colors.shift();
}

クラスから取得したい場合は、各クラスを取得してから、アンカータグの各セットを取得する必要があります...

var divs = document.getElementsByClassName('className');
for (var i = 0; i < divs.length; i++) {
    var a = divs[i].getElementsByTagName('a');
    for (var j = 0; j < a.length; j++) {
        var elem = a[j],
            color = colors[0];
        elem.style.color = color;
        colors.push(color);
        colors.shift();
    }
}

基本的に、すべてのリンクを取得するのと同じ概念に従います。唯一の違いは、ドキュメントを参照として使用しないことです。最初に必要な div を取得し、そこからすべてのアンカー タグの配列を取得します。

于 2013-04-02T13:40:25.287 に答える