使用js如何给标签的class值批量赋值

不是赋值,是设置css的样式... 不是赋值 , 是设置 css 的样式 展开
 我来答
yinhui1129754
2018-01-15 · TA获得超过133个赞
知道小有建树答主
回答量:70
采纳率:100%
帮助的人:39.3万
展开全部

添加多个class 其实可以先从添加一个class然后对其进行封装

好的我废话就不多说了下面给出一份演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
 .asdasd{
            width:100px;
 height: 100px;
 background-color: #cccccc;
 }
        .hello{
            background-color: #00AEEF;
 }
    </style>
</head>
<body>
<div class="asdasd" id="demo">

</div>
<script>
 //清楚空格
 function trim(str,t){
        if(typeof t == "undefined"){
            t="lr";
 }
        switch (t){
            case "l":{
                return str.replace(/(^\s*)/g, "");
 }
            case "r":{
                return str.replace(/(\s*$)/g, "");
 }
            case "lr":{
                return str.replace(/(^\s*)|(\s*$)/g, "");
 }
        }

    }
    //增加Class
 function addClass(ele,cls){
        if(!ele.getAttribute)return;
 var allClass=[];
 cls=trim(cls);
 if(ele.getAttribute("class") == null){}else{
            allClass=ele.getAttribute("class").split(" ");
 }
        if(!inArr(allClass,cls)){
            allClass.push(cls);
 ele.setAttribute("class",allClass.join(" "));
 }
    }
    //循环
 function each(arr,f){
        if(!arr.length)return console.log("error:array is not length");
 for(var i = 0;i<arr.length;i++){
            f.call(arr[i],i,arr[i]);
 }
    }
    //是否在数组里面 其实可以通过indexof判断但是indexof是匹配了数据类型
 function inArr(arr,v){
        if(!arr.length)return false;
 for(var i = 0;i<arr.length;i++){
            if(v==arr[i]){return true;}
        }
        return false;
 }
    //增加多个Class
 function  addClassArr(ele,arr){
       each(arr,function(){
           addClass(ele,this);
 })
   }
    addClassArr(document.getElementById("demo"),["a1","hello","world"])
</script>
</body>
</html>

可以看到 如果没有执行addClassArr这个函数显示的效果的这样的

执行了addClassArr这个函数显示的效果是这样的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式