当前位置:首页 > JavaScript

js实现attr

2026-02-01 05:15:48JavaScript

实现 attr 方法

在 JavaScript 中,可以通过原生 DOM 操作或 jQuery 类似的方式实现元素的属性(attr)获取和设置功能。以下是两种常见的实现方式:

原生 JavaScript 实现

通过 getAttributesetAttribute 方法实现属性的获取和设置:

function attr(element, attributeName, value) {
  if (value === undefined) {
    return element.getAttribute(attributeName);
  } else {
    element.setAttribute(attributeName, value);
    return element;
  }
}

使用示例:

js实现attr

const div = document.querySelector('div');
attr(div, 'id', 'myDiv'); // 设置属性
console.log(attr(div, 'id')); // 获取属性,输出 'myDiv'

链式调用扩展

如果需要支持链式调用(类似 jQuery),可以扩展 Element.prototype

Element.prototype.attr = function(attributeName, value) {
  if (value === undefined) {
    return this.getAttribute(attributeName);
  } else {
    this.setAttribute(attributeName, value);
    return this;
  }
};

使用示例:

js实现attr

document.querySelector('div')
  .attr('id', 'myDiv')
  .attr('class', 'container');

支持多属性设置

如果需要一次性设置多个属性,可以扩展功能:

function attr(element, attributeName, value) {
  if (typeof attributeName === 'object') {
    for (const key in attributeName) {
      element.setAttribute(key, attributeName[key]);
    }
    return element;
  } else if (value === undefined) {
    return element.getAttribute(attributeName);
  } else {
    element.setAttribute(attributeName, value);
    return element;
  }
}

使用示例:

attr(document.querySelector('div'), {
  id: 'myDiv',
  class: 'container'
});

注意事项

  • 原生 getAttribute 返回的是字符串,而 jQuery 的 attr 可能返回其他类型(如 checked 返回布尔值)。
  • 修改原型(Element.prototype)可能与其他库冲突,需谨慎使用。
  • 现代前端开发推荐使用 dataset 处理自定义数据属性(data-*)。

标签: jsattr
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…