javascript - 战胜 jQuery 成瘾 : Which jQuery methods are easily translated into pure javascript?

标签 javascript jquery

被 jQuery 宠坏了,我现在将它包含到每个项目中,即使我需要的只是调用 $("#div).hide()$("#link").click()一次。

我知道 jQuery 通常会为您处理跨浏览器问题,但有时它只是 native JavaScript 方法的便捷包装。

所以我的问题是哪些 jQuery 方法可以轻松地被 native JavaScript 替换?

最佳答案

以下是我使用的一些示例,而不是 jQuery 方法(如果我不使用 jQuery):

  • $(节点).css(值):

    function css(node, style) {
      if(node && node.style) {
        for(var key in style) {
            node.style[key] = style[key];
        }
      }
    }
    
  • $(node).show():jQuery 在这里更加复杂,因为它还可以将显示值设置为例如内联

    function show(node) {
      if(node && node.style) {
        node.style.display = "";
      }
    }
    
  • $(node).hide():另外,jQuery方法存储了之前的显示值。

    function hide(node) {
      if(node && node.style) {
        node.style.display = "none";
      }
    }
    
  • $(node).addClass(class)

    function addClass(node, cls) {
      if(node) {
        if(!node.className) {
            node.className = cls;
        }
        else if(node.className.indexOf(cls) == -1) {
            node.className = node.className + " " + cls;
        }
      }
    }
    
  • $(node).removeClass(class)

    function removeClass(node, cls) {
      if(node && node.className && node.className.indexOf(cls) >= 0) {
        var pattern = new RegExp('\\s*' + cls + '\\s*');
        node.className = node.className.replace(pattern, ' ');
      }
    }
    

这些方法应该是跨浏览器兼容的。 jQuery 方法通常提供更多选项,例如删除多个类,或者更复杂。
这取决于您的需求,是否需要“高级”功能。更简单的方法可能就足够了。例如,如果我知道我总是需要隐藏 div 元素,那么这个 hideshow 方法就非常不错。

更新:

根据您正在开发的浏览器(例如制作 Firefox 扩展),您甚至可以获得一些东西 close jQuery 的选择器引擎:document.querySelectorAll(selector)

关于javascript - 战胜 jQuery 成瘾 : Which jQuery methods are easily translated into pure javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005211/

相关文章:

jquery - 在 jQuery 中旋转 Div 元素

javascript - 无法获取嵌套在 jQuery 中的 Bootstrap 弹出窗口中的元素

javascript - 通过 JavaScript 访问亚马逊 DynamoDB 上的数据

javascript - JSON:无法访问嵌套数据(只能通过索引)

javascript - 我希望当您按下回车键时我的表单能够继续前进

javascript - 通过字符串创建一个javascript对象

php - 无法使用 Jquery 从行表获取 Post 值 ID 到 PHP

javascript - javascript new Date(timestamp) 是否根据客户端时区返回日期?

javascript - 如果我发出警报,jquery IF 的行为会有所不同

jquery - 什么是缓动函数?