简单实现JS对dom操作封装

实现JS对DOM操作的封装一般有如下几个步骤:

1.定义一个构造函数,用于实例化一个操作DOM的对象

2.在该构造函数的原型上,定义一系列方法,用于对DOM进行操作。比如,增加、删除、修改元素的属性、样式等

3.封装一些通用的操作DOM的方法,比如获取元素、遍历元素、判断元素类型等,方便调用者使用

4.用新增的构造函数创建一个实例对象,调用封装好的方法操作DOM

下面,我来分几个步骤讲述一下如何实现JS对DOM操作的封装:

1.定义构造函数

function DomUtil(selector) {
    this.element = document.querySelector(selector)
}

在构造函数中,我们使用document.querySelector方法选择DOM元素,并将其赋值给构造函数的实例对象。

2.添加针对DOM的操作方法

我们可以在构造函数原型上添加一些操作DOM的方法,如下所示:

DomUtil.prototype = {
    setAttr: function(key, value) {
        this.element.setAttribute(key, value);
    },
    removeAttr: function(key) {
        this.element.removeAttribute(key);
    },
    addClass: function(className) {
        this.element.classList.add(className);
    },
    removeClass: function(className) {
        this.element.classList.remove(className);
    },
    setStyle: function(key, value) {
        this.element.style[key] = value;
    },
    getContent: function(){
        return this.element.innerHTML;
    },
    setContent: function(content) {
        this.element.innerHTML = content;
    }
}

这些方法可以实现一些常用的操作,比如设置/删除元素属性,修改元素样式,获取元素内容等。

3.添加通用的DOM操作方法

我们可以添加一些通用的操作DOM的方法,比如获取元素、遍历元素、判断元素类型等:

var DomUtil = function(selector) {
    if (!(this instanceof DomUtil)) return new DomUtil(selector);

    switch (typeof selector) {
        case 'string':
            this.element = document.querySelector(selector);
            break;
        case 'object':
            this.element = selector;
            break;
    }
}   

DomUtil.prototype = {
    setAttr: function(key, value) {
        this.element.setAttribute(key, value);
    },
    removeAttr: function(key) {
        this.element.removeAttribute(key);
    },
    addClass: function(className) {
        this.element.classList.add(className);
    },
    removeClass: function(className) {
        this.element.classList.remove(className);
    },
    setStyle: function(key, value) {
        this.element.style[key] = value;
    },
    getContent: function(){
        return this.element.innerHTML;
    },
    setContent: function(content) {
        this.element.innerHTML = content;
    },
    find: function(selector) {
        return new DomUtil(this.element.querySelector(selector));
    },
    findAll: function(selector) {
        var elements = this.element.querySelectorAll(selector);
        return Array.prototype.map.call(elements, function(element) {
            return new DomUtil(element);
        });
    },
    each: function(callback) {
        var elements = this.element.children;
        for (var i = 0; i < elements.length; i++) {
            var element = elements[i];
            callback.call(new DomUtil(element), i, element);
        }
    },
    isElement: function() {
        return (typeof HTMLElement === "object") ? (this.element instanceof HTMLElement) : (this.element && typeof this.element === "object" && this.element.nodeType === 1 && typeof this.element.nodeName==="string");
    }
}

这些方法可以让用户更加方便地操作DOM元素。

4.创建实例对象,调用方法

我们可以创建一个实例对象,调用封装好的方法,比如:

var ele = new DomUtil('.box');
ele.setAttr('data-role', 'box');
ele.addClass('test');
ele.setStyle('fontWeight', 'bold');

这样就可以操作DOM元素了。

下面给出两个示例说明:

1.传入字符串选择器:

var domUtil = new DomUtil('.box'); //这里选择了一个class为box的div
domUtil.setStyle('background-color', '#f00');

这段代码会将背景色设置为红色。

2.传入DOM元素:

var domUtil2 = new DomUtil(document.querySelector('#box2'));
domUtil2.setContent('content change');

这段代码会将HTML元素的内容改为 "content change"。

总结:以上就是实现JS对DOM操作的封装的攻略,封装好的代码可以有效的减少我们在使用DOM元素时的代码量,使操作更加简单易懂,增加我们的开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单实现JS对dom操作封装 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 在React中this容易遇到的问题详解

    在React中this容易遇到的问题详解 在React开发中,this这个关键字非常常用,但同时也很容易引起问题。接下来,本文将详细讲解在React中this容易遇到的问题,并提供相应的解决方法。 问题1:函数调用时this指向问题 在React中,我们一般使用bind绑定this来确保函数中的this指向正确。但是,有时我们会在组件渲染时动态传递数据,这时…

    JavaScript 2023年6月10日
    00
  • js数组的基本使用总结

    JS数组的基本使用总结 什么是数组 数组是一种特殊的对象,可以用来存储一组有序的数据。数组的每个元素都有一个索引,以此来确定元素在数组中的位置。 创建和使用数组 在JavaScript中,我们可以使用以下两种方式来创建数组: 直接声明 let arr = [1, 2, 3, 4, 5]; 通过构造函数创建 let arr = new Array(1, 2, …

    JavaScript 2023年5月27日
    00
  • 23个Javascript弹出窗口特效整理

    这篇文章是对23个Javascript弹出窗口特效的整理,其中包含了不同类型的弹窗特效,包括提示框、模态框、响应式弹窗等。本文将对这些弹窗特效进行详细讲解,帮助读者更好地理解和使用这些特效。 1. 弹出提示框 提示框可以用来展示简单的信息,并通知用户进行确认或取消操作。下面是一个例子: <button onclick="alert(‘Hell…

    JavaScript 2023年5月28日
    00
  • JavaScript中使用指数方法Math.exp()的简介

    JavaScript中的 Math.exp() 方法是一个指数函数,用于计算以自然常数e为底的指数幂,其中e为一个数学常数(约等于2.71828)。该方法返回e的指定幂次方的值。 语法 Math.exp(x) 参数 x: 必需,一个数值,表示以e为底数的指数幂。 返回值 一个数值,表示e的x次幂。 例子 console.log(Math.exp(1)); /…

    JavaScript 2023年5月27日
    00
  • JavaScript实现简易加法计算器

    以下是JavaScript实现简易加法计算器的完整攻略: 1. 创建HTML页面 首先,我们需要在HTML页面创建两个输入框和一个按钮,用于输入两个数字和计算结果。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&…

    JavaScript 2023年6月11日
    00
  • JS.findElementById()使用介绍

    JS.findElementById()使用介绍 在JavaScript中,document.getElementById()方法允许您通过DOM(Document Object Model)获取HTML元素。该方法将返回具有指定ID的元素。 语法 以下是 document.getElementById() 的语法: document.getElementB…

    JavaScript 2023年6月10日
    00
  • js判断日期时间有效性的方法

    下面就给大家详细讲解一下js判断日期时间有效性的方法。 前言 在开发web应用程序时,时间日期是一个常见的数据类型。在应用程序中,我们需要对用户输入的时间日期进行校验,以保证数据的正确性。本文将介绍如何使用js对时间日期的有效性进行判断。 方法一:正则表达式 使用正则表达式判断日期时间的有效性是一种常用且简单的方法。JS中对日期进行比较主要用到了Date对象…

    JavaScript 2023年5月28日
    00
  • python selenium操作cookie的实现

    Python Selenium操作Cookie的实现: 引入selenium模块 from selenium import webdriver 定义浏览器对象 browser = webdriver.Chrome() 获取网站Cookie信息 browser.get(‘https://www.baidu.com’) print(browser.get_coo…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部