本文目录一览:
如何用javascript为元素添加class?
以给 body 标签添加 class 为例
通过 jQuery
$( 'body').addClass( 'class1 class2' );
$( 'body' ).removeClass( 'class1 class2' );
支持 classList 的高级浏览器(IE10+,Chrome,Firefox,Safari)
document.body.classList.add( 'class1', 'class2' );
document.body.classList.remove( 'class1', 'class2' );
不支持 classList 的浏览器只能通过 className 来添加
document.body.className += ' cl
[1]直接把样式赋值给className
var odiv=document.getElementById('div1');
odiv.className= div3
//这样我们会得到 class ="div3" 会直接把div2样式给覆盖掉;
[2]使用累加赋值给className
var odiv=document.getElementById('div1');
odiv.className+=" "+div3 //样式和样式之间需要空隙 ,所以加个空字符串隔开
//这样可以得到 class="div2 div3" 可以正常增加,但是我们在添加样式的时候我们得考虑下他本身之前有没有同名的样式,如果有我们添加的话就会变成累赘 比如class="div2 div3 div3";
[3]检测样式原先之前是否有相同的样式
var odiv=document.getElementById('div1');
function hasClass(element,csName){
element.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)')); //使用正则检测是否有相同的样式
}
[4]在[3]的基础上我们就可以进行判断性给元素添加样式了
var odiv=document.getElementById('div1');
function hasClass(element,csName){
return element.className.match(RegExp('(\\s|^)'+csName+'(\\s|$)')); //使用正则检测是否有相同的样式
}
function addClass(element,csName){
if(!hasClass(element,csName)){
element.className+=' '+csName;
js怎么获取元素的class名
js获取元素的class名:
var className=document.getElementsByClassName('names')[0];
jquery获取元素的class名:
var className = $('.names').atrr('class');
相关概念
getElementsByClassName() 方法返回文档中所有指定类名的元素集合,作为 NodeList 对象。
NodeList 对象代表一个有顺序的节点列表。NodeList 对象 我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
如何用js点击class?
HTML DOM3提供了getElementsByClassName()方法用以根据类名获取元素,但是IE9以下浏览器并不支持。考虑兼容性,可以采用如下思路:获取元素,判断className属性是否为目标类名,是的话即添加onclick事件。
下面实例演示——点击class为test1的a标签弹出提示框:
1、HTML结构
div
a class="test1" href="#"第一项/a
a class="test2" href="#"第二项/a
/div
2、javascript代码
window.onload = function(){
var a = document.getElementsByTagName("a");
for(i=0;ia.length;i++){
if(a[i].className == "test1"){
a[i].onclick = function(){alert(this.innerHTML+"被点击了")}
}
}
}
3、效果演示