JQuery获取元素类名
⼀般⽽⾔,JQuery可以利⽤attr来获取元素的属性值,
1、$("元素").attr("属性"); //获取指定属性的值
2、$("元素").attr("属性","属性值");//设置属性值
3、$("元素").removeAttr("属性"); //移除指定属性
不过在1.6中加⼊了prop,⽤法同attr相同。只是将上⾯中attr替换成prop即可,不过在获取checked等属性时,将会返回标准属性true/false,不会和之前的attr⼀样,返回checked或者“”。
⽽JQuery中获取类名的属性为class亦可以为className,因为在HTML DOM中没有class属性,⽽是className属性。在JQuery中,有对className作出关键字的转换
jQuery.props = {
"for" : "htmlFor" ,
"class" : "className" ,
readonly: "readOnly" ,
maxlength: "maxLength" ,
cellspacing: "cellSpacing" ,
rowspan: "rowSpan" ,
colspan: "colSpan" ,
tabindex: "tabIndex" ,
usemap: "useMap" ,
frameborder: "frameBorder"
};
⼆者的区别:
⽤class: ⽐较直觉,跟HTML Tag相同,⽽且⽤class⽐className少⼏个判断,可能可以快⼏纳秒吧。
⽤className: 与HTML Dom相同,不会因为没了jQuery就不会写Javascript。
这⾥需要注意的是,如果你获取的元素没有类名的话,它返回的是undefined,⽽不是空或null。有关基本数据类型,可参照此博客
下⾯给出⼀段代码例⼦,作⽤是通过按下键盘的右⽅向键来切换页⾯的body类。
var setBodyClass = function(className) {
$('body').removeClass().addClass(className); //删除之前的类,再添加新的类名
};
$(document).keyup(function(event){ //监听键盘按下的按键
var key = event.which; //获取键码
if(key==39){ //右⽅向键的键码为39
var className = String($('body').attr("class"));//获取body的类名
if(className=="undefined"){//body没有类名
setBodyClass("narrow");
}
if(className=="default"){
setBodyClass("narrow");
}
if(className=="narrow"){
setBodyClass("large");
}
if(className=="large"){
setBodyClass("default");
}
jquery的attr属性}
});
body {
font: 62.5% Verdana, Helvetica, Arial, sans-serif;
color: #000;
background: #fff;
}
body.large {
font-size: 1.5em;
}
body.narrow {
width: 250px;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论