使用JavaScript在for语句中的链接之前和之后添加一个类?

时间:2011-05-06 05:44:50

标签: javascript hyperlink

我在UL中有一个链接列表。有人可以给我一个例子来说明如何检测被点击的链接的索引是什么,然后在所选链接之前向LI中的所有链接添加一个类,并在所选链接之后向LI中的所有链接添加不同的类?

1 个答案:

答案 0 :(得分:1)

var ul = document.getElementById('your-ul'),
    li = ul.getElementsByTagName('li');

var iterateLi = function(fn) {
    for (var i = 0, length = li.length; i < length; i++) {
        fn.call(li[i], i);
    }
};

iterateLi(function(index) {
    var thisIndex = index,
        thisLi = this;

    this.onclick = function(index) {
        iterateLi(function(index) {
            var classes = ['before', 'selected', 'after'],
                addClass;
            if (index < thisIndex) {
                addClass = classes[0];
            } else if (index == thisIndex) {
                addClass = classes[1];
            } else {
                addClass = classes[2];
            }

            for (var i = 0, length = classes.length; i < length; i++) {
            }

            var className = this.className;

            if (className) {
                var regex = new RegExp('(?:' + classes.join('|') + ')', 'g');
                className = className.replace(regex, '');
                console.log(regex, className)
            }

            this.className = className + ' ' + addClass;
        });
    };
});

jsFiddle