[JavaScript] 连缀 →→→→→进入此内容的聊天室

来自 , 2021-02-03, 写在 JavaScript, 查看 144 次.
URL http://www.code666.cn/view/cae82d43
  1. /*base.js文件*/
  2. //前台调用---实例化一个Base对象
  3. var $ = function () {
  4.     return new Base();
  5. };
  6.  
  7. //基础库
  8. //创建Base对象
  9. function Base(){
  10.     this.elements = [];//创建一个数组,存放获得的节点和节点数组
  11.  
  12.     //获得ID节点
  13.     //参数:节点的ID
  14.     //返回值:Base对象
  15.     this.getId = function (id) {
  16.         this.elements.push(document.getElementById(id)); //将获得的节点存放在数组中
  17.         return this; //返回当前对象--Base(此时对象中的elements数组已经存放了需要的节点)
  18.     };
  19.     //获得元素节点
  20.     //参数:节点的tag
  21.     //返回值:Base对象
  22.     this.getTagName = function (tag) {
  23.         //将节点数组存放在数组中(通过遍历)
  24.         var tags = document.getElementsByTagName(tag);
  25.         for (var i = 0; i < tags.length; i++) {
  26.             this.elements.push(tags[i]);
  27.         }
  28.         return this;//返回当前对象--Base
  29.     }
  30. }
  31.  
  32.     //设置css方法---需要在对象的原型上添加方法
  33.     //参数:attr--属性  value--属性对应的值
  34.     //返回值:Base对象
  35.     Base.prototype.css = function (attr, value) {
  36.         for (var i = 0; i < this.elements.length; i++) {
  37.             this.elements[i].style[attr] = value; //将对象的节点设置css属性
  38.         }    
  39.         return this;//返回当前对象--Base
  40.     }
  41.     //设置innerHTML方法---在对象的原型上添加
  42.     //参数:str-页面上显示的值
  43.     //返回值:Base对象
  44.     Base.prototype.html = function (str) {
  45.         for (var i = 0; i < this.elements.length; i++) {
  46.             this.elements[i].innerHTML = str;
  47.         }
  48.         return this; //返回当前对象--Base
  49.     };
  50.     //出发点击事件click方法--在对象的原型上添加
  51.     //参数:一个匿名函数
  52.     //返回值:Base对象
  53.     Base.prototype.click = function (fn) {
  54.         for (var i = 0; i < this.elements.length; i++) {
  55.             this.elements[i].onclick = fn;
  56.         }
  57.         return this; //返回当前对象--Base
  58.     }
  59.  
  60.  
  61. /*demo.js文件*/
  62. window.onload = function () {
  63.  
  64.     //var base = new Base();//实例化一个Base对象
  65.     //base.getId("box").css("color", "red").css("background", "blue").html("改变现实的值").click(function () { alert("a") });
  66.  
  67.     //另外一个问题---当前面设置了一些css属性后面再设置之后,前面的设置会被覆盖掉
  68.     //原因:两次设置是在通过base对象上设置的
  69.     //base.getTagName("p").css("background", "black");
  70.     //针对这个问题的解决方法
  71.     //在base.js中实例化一个Base对象,在demo中直接调用已经实例化好的对象,就不会出现调用同一个对象的情况
  72.     $().getTagName("p").css("background", "black");
  73.     $().getId("box").css("color", "red").css("background", "blue").html("改变现实的值").click(function () { alert("a") });
  74. }

回复 "连缀"

这儿你可以回复上面这条便签

captcha