javascript - 需要帮助复制 jQuery 的 addClass 函数

标签 javascript jquery

我想使用纯 JavaScript 复制 jQuery 的 addClass 函数 到目前为止,我已经实现了这个功能:

function addClass(el,cl){
el.className+=(el.className?' ':'')+cl
}

它运行良好,但它使用以下语法:

addClass(element,class)

我希望它使用以下语法:

element.addClass(class)

我怎样才能做到这一点?

谢谢:)

最佳答案

当 element 是所有浏览器中的 DOM 元素(不是您自己的对象,如 jQuery 对象)时,没有完全安全的方法使 element.addClass() 对所有元素起作用。一些框架过去已经这样做了,但它们遇到了足够多的问题,以至于有些框架正在放弃这样做。我不建议这样做。

您不从事浏览器兼容性或框架创建业务(您不想这样做),因此即使扩展 DOM 对象看起来更干净,我也不会推荐它。 jQuery 和 YUI 不这样做。他们创建一个包含方法和 DOM 元素引用的包装对象。

如果您想了解一些危险,这里有一个关于该主题的很好的引用:What's wrong with Extending the DOM? .

关于javascript - 需要帮助复制 jQuery 的 addClass 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550263/

相关文章:

javascript - jQuery 动态更改数据属性后,如何读取/写入数据属性?

javascript - CSS Toggable 选项卡使用 Javascript 动态更改

javascript - 使用 Jquery 实现标签

javascript - 在 javascript/jquery 中转义 & 号

javascript - Node.js + OracleDb - 多次插入最后一个日期

javascript - 是否通过浏览器发送没有名称 =“” 的输入字段

javascript - JS 双感叹号——有什么好的理由使用它吗?

javascript - 将 Jquery 转换为 VanillaJS

java - JQuery + JAVA 中的长轮询?

javascript - Owl Carousel 导航箭头造型