
javascript是一个“基于
对象”的编程语言,不是面向对象的编程语言。\x0d\x0a你要知道javascript中的function定义的函数实际上就是Function对象实例。\x0d\x0a例如:\x0d\x0afunction demo(x){\x0d\x0aalert(x)\x0d\x0a}\x0d\x0a实际上等价于:\x0d\x0aFunction demo = new Function("x","alert(x)")\x0d\x0a所以你如果想要用javascript来
模拟面向对象编程(例如Java的类),那么就可以用function来模拟Class,用function的原型prototype或者嵌套function来模拟类的方法或者属性。下面给你一个简单的例子:\x0d\x0a//模拟学生类,可以带参数,例如initName\x0d\x0afunction Student(initName){\x0d\x0avar name = initName//模拟学生类的属性name\x0d\x0a}\x0d\x0aStudent.prototype.printName = function(){ //定义Student类prototype中的printName函数\x0d\x0aalert(this.name)\x0d\x0a}\x0d\x0a\x0d\x0a测试时可以这样写:\x0d\x0avar student = new Student("张三")//创建一个“Student对象”,实际上是一个Function实例对象\x0d\x0astudent.printName() //执行student对象的printName函数
添加 单个 class:
添加多个类:
移除一个类:
移除多个类:
检查是否含有某个类
因为`.manage2`样式是在事件中添加到#manage元素的,第二段代码执行时该元素尚未被赋予.manage2样式, 所以获取不到这个元素也没添加有效的事件。
看你这段代码, .manage1、.manage2应该都是id为manage的元素,
首先能用ID获取就不要用样式获取, 因为ID获取元素的效率最快。
其次, 同一元素多次被使用时, 用变量暂存,
代码更改如下, 如果不对, 请上传相应的HTML:
var box = document.getElementById('box'),
boxClassList = box.classList
manage = document.getElementById('manage'),
manageClassList = manage.classList
manage.onclick = function(){
manageClassList.remove('manage1')
manageClassList.add('manage2')
boxClassList.add('addr-add')
manage.onclick = function(){
boxClassList.remove('addr-add')
boxClassList.add('addr-delete')
}
}
评论列表(0条)