纯javascript相当于jquery click()?

我正在构建一个捕获鼠标点击的小应用程序。 我在jquery中编写了原型,但由于它是一个专注于速度的小应用程序,嵌入jquery只使用一个函数将是一个过度杀伤力。

我试图从JavascriptKit改编这个例子:

document.getElementById("alphanumeric").onkeypress=function(e){ //blah..blah..blah.. } 

但是当我尝试时它没有用

 document.getElementsByTagName("x").onclick 

我究竟做错了什么?

假设您有一个p标签列表,您希望捕获p标签的点击:

 var p = document.getElementsByTagName("p"); for(var i=0; i 

请查看此处的示例以获得更清晰: http : //jsbin.com/onaci/

在您的示例中,您使用的是getElementsByTagName,它返回一个DOM元素数组,您可以迭代该数组并为每个元素分配onclick处理程序,例如:

 var clickHandler = function(){ alert('clicked!'); } var elements = document.getElementsByTagName('div'); // All divs for(var i = 0; i 

它看起来有点像你想念的不仅仅是jQuery的clickfunction。 您还会错过jquery的选择器引擎,链接以及跨对象集合的自动迭代。 通过更多努力,您可以最低限度地再现其中的一些内容。

 var myClickCapture = function (selector) { var method, name,iterator; if(selector.substr(0,1) === "#") { method = "getElementById"; name = selector.substr(1); iterator = function(fn) { fn(document[method](name)); }; } else { method = "getElementsByTagName"; name = selector; iterator = function(fn) { var i,c = document[method](name); for(i=0;i 

我没有测试过代码,但从理论上讲,它会让你得到这样的东西:

 myClickCapture("x").click(function(e){ alert("element clicked") }); 

希望这能让你了解jquery在幕后所做的各种事情。

 document.getElementsByTagName("x") 

返回标记名为“x”的元素数组。

您必须为返回数组中的每个元素设置right事件。