问1:hasclass为社么是return?不能用className =obj.className.match(new RegExp("(\\s|^)" + name + "(\\s|^)")); 吗?而其他2个都那么用的,见截图
问2: var item = items[i];var itemtop = item.offsetTop(); 我这里变量名没用下划线_item 和 item 有区别吗?好像听说用下划线是实例啥来着
function hasclass(obj,name){
return obj.className.match(new RegExp("(\\s|^)" + name + "(\\s|^)"));
}
function removeclass(obj,name){
if(hasclass(obj,name)){
var reg = new RegExp("(\\s|^)" +name + "(\\s|^)");
obj.className = obj.className.replace(reg, "");
}
}
function addclass(obj,name){
if(!hasclass(obj,name)){
obj.className += " " + name;
}
}
这里的hasClass是用来判断元素是否有某个class的,只需要读取需要的值即可。而后面两个方法是用来操作(增加、删除)class的,是需要操作DOM,需要改变值的,所以会有赋值操作。
变量的命名没有特别的讲究,可以有自己的风格。通常变量名前面加下划线,表示这个变量是这个方法中的私有变量。