如何知道点击了哪个元素
Posted
技术标签:
【中文标题】如何知道点击了哪个元素【英文标题】:How to know which element was clicked 【发布时间】:2012-04-18 20:36:11 【问题描述】:我有这个代码:
( function()
var i, ii, e = Elements.Select('.drop');
for ( i = 0, ii = e.length; i < ii; i++ )
e [ i ].onclick = function ()
alert ( e [ i ].getAttribute('data-open') );
)();
我所做的是,当单击具有 className 'drop' 的元素时,会提醒我单击的元素的属性。但是没用。
这段代码是我用来通过她的类名选择一个元素的代码。 不要太在意,它只是向我们展示,只是向他们展示我是如何选择元素的。
(function()
Select : function ( element )
var object, index = element.substr( 0, 1 ), name = element.substr( 1, element.length ), clases = [ ], i, all = document.body.getElementsByTagName("*");
switch ( index )
case '.' :
for ( i = 0; i < all.length; i ++ )
if ( all [ i ].className == name )
clases.push( all [ i ] );
object = clases;
break;
return object
)();
¿答案?
【问题讨论】:
【参考方案1】:你可以使用 jquery 来做这个。这里,'this' 关键字为你提供了当前被点击的元素。此函数在类名为“drop”的任何元素的单击事件上触发。
$(".drop").click( function()
var x=$(this).attr("data-open");
);
【讨论】:
你能帮我用 JQuery 吗? 我不能 100% 确定我在 javascript 中执行此操作的方法是否有效,但也会尝试使用该方法为您提供解决方案.. 即使使用 jQuery,上面的代码也无法运行。使用 POJSthis.getAttribute('data-open')
或使用 jQuery $(this).attr('data-open')
【参考方案2】:
( function()
var i, ii, e = Elements.Select('.drop');
for ( i = 0, ii = e.length; i < ii; i++ )
e [ i ].onclick = function ()
//by the time that this gets executed, the for loop is ended, thus i equals ii
// instead of using e[i]... try using this :
alert (this.getAttribute('data-open'));
alert ( e [ i ].getAttribute('data-open') );
)();
【讨论】:
以上是关于如何知道点击了哪个元素的主要内容,如果未能解决你的问题,请参考以下文章
angularjs中使用ng-repeat渲染页面,点击元素,如何知道点击的哪个元素