Apply style to first element in a row of similar elements

前端 未结 3 1670
我寻月下人不归
我寻月下人不归 2020-12-11 13:32

I have the following list (the numbers are just for reference)

alpha1
alpha2
3条回答
  •  执笔经年
    2020-12-11 13:48

    Here is a cross browser solution using JavaScript:

    http://jsfiddle.net/YhvGw/

    function applyStyleToFirstDiv(className, styleAttr, val,baseSelector) {
        //Allow to specify a base element to search in
        if(baseSelector == null){
            baseSelector = document    
        }
        var divElements = baseSelector.getElementsByTagName("div"),
            len = divElements.length;
        var prevWas = false,currentIs;
        // Go through all the divs
        for (var i = 0; i < len; i++) {
            var cur = divElements[i];
            var classes = cur.className.split(" ");
            currentIs = false;
            for (var j = 0; j < classes.length; j++) {
                //If you find a matching class
                if (classes[j] === className) {
                    currentIs = true;
                    break;
                }
            }
            //If the current one matches, and the last one didn't, apply the style, otherwise don't
            if(currentIs && !prevWas){
                cur.style[styleAttr] = val;    
            }
            prevWas = currentIs;
    
        }
    }
    //usage sample
    applyStyleToFirstDiv("A","color","yellow");
    

提交回复
热议问题