当前位置: 首页 > Web前端 > CSS

NativeJS操作DOM元素class

时间:2023-03-30 13:40:58 CSS

1.classList的类名,参见MDNElement.classListadd(String[,String])添加指定的class值。如果这些类已经存在于元素的属性中,那么它们将被忽略。remove(String[,String])删除指定的类值。item(Number)按集合中的索引返回类值。toggle(String[,force])只有一个参数时:toggleclassvalue;即如果该类存在,则删除它并返回false,如果不存在,则添加它并返回true。当存在第二个参数时:如果第二个参数的计算结果为真,则添加指定的类值,如果计算结果为假,则将其删除contains(String)检查指定的类是否存在于元素值的类属性中。replace(oldClass,newClass)用新类替换现有类。IE10+只是有限兼容,不支持SVG元素,不支持toggle()、多参数add()和remove()、replace()2.className+string操作varclassValue=element.className;//加空格,否则如果要查询“abc”,如果有类名“abcd”就会出问题classValue=""+classValue+"";//查询classValue.indexOf("yourClassName")===-1?false:true;//同样的查询也要带空格*2//addclassValue+="yourClassName";//注意空格*1//orclassValue=classVal.concat("someClassName");//注意空格*1element.setAttribute("class",classValue);//删除classValue=classValue.replace("yourClassName","");//注意空格*3element.setAttribute("class",classValue);//修改classValue=classValue.replace("targetClassName","yourClassName");//注意空格*4element.setAttribute("class",classValue);3.className+regularity同上方法,但空格换成正则判断varelement=document.querySelector('#yourId');//查询函数hasClass(element,yourClassName){return!!element.className.match(newRegExp("(\\s|^)"+yourClassName+"(\\s|$)"));//(\\s|^)判断前面是空格还是开头(\\s|$)判断后面是空格还是结尾两个感叹号转成布尔值,方便判断};//添加函数addClass(element,yourClassName){if(!hasClass(element,yourClassName)){element.className+=""+yourClassName;};};//删除函数removeClass(element,yourClassName){if(hasClass(element,yourClassName)){element.className=element.className.replace(newRegExp("(\\s|^)"+yourClassName+"(\\s|$)"),"");};};