如何将选择器和事件捕获从jQuery转换为纯JS?

时间:2010-07-31 20:17:13

标签: javascript jquery

有人可以帮助将此代码转换为普通JS:

$(document).ready(function() {
    $("textarea").bind("keydown", function(event) {
        var textarea = $(this).get(0);          
        //further will need only textarea and event vars
    }
});

我不关心跨浏览器兼容性,只要它适用于当前的FF和Chrome。

2 个答案:

答案 0 :(得分:5)

您的选择器非常简单,您正在寻找所有textarea元素,然后您可以使用document.getElementsByTagName方法。

要模拟$(document).ready,我们可以绑定DOMContentLoaded事件,例如:

document.addEventListener('DOMContentLoaded', function () {
  var allTextAreas = document.getElementsByTagName('textarea');
  // event handler
  var handler = function (event) {
    var textarea = this;
    //...
  };

  // iterate over the textareas and bind the event
  for(var i = 0, len = allTextAreas.length; i < len; i++) {
    allTextAreas[i].addEventListener('keydown', handler, false);
  } 
}, false);

对于CSS选择器,您可以使用querySelectorAll方法,该方法适用于您定位的两种浏览器。

另见:

答案 1 :(得分:0)

为什么将它转换为“普通JS”? jQuery本质上是普通的JS。它只是一种围绕Javascript构建的语言。什么是jQuery

不适合你