总的来说是基于对象的区别,jquery中的attr(),removeClass()方法是基于jquery对象来定义的,而className是基于DOM对象来定义的,所以在应用这些方法或者属性的时候要注意对象是谁,一般jquery中的对象都要用 $() 来修饰。
例如:
css:
.a_class{
display: none;
}
.b_class{
display: block;
}
jq:
$("#hid_blo div").attr("class","a_class");
//点击事件中获取被点击的li的下标
var i = $("li").index(this);
//$("#hid_blo div")[i]是找到对应下标的div,这里就涉及到了对象的问题了
//下面的这句代码写成$("#hid_blo div")[i].className="b_class"同样也可以,但写成$("#hid_blo div")[i].attr("class","b_class")就不行了,因为attr()方法是jquery对象的,而$("#hid_blo div")[i]是一个DOM对象,所以需要用$()修饰成jquery对象才行。
如下
$($("#hid_blo div")[i]).attr("class","b_class");
html:
<div id="hid_blo">
<div class="b_class">
bbb
</div>
<div class="a_class">
aaa
</div>
</div>