jQuery - 如何在使用“click”事件时获取元素的属性

时间:2011-09-22 18:09:41

标签: javascript jquery

我正在使用jQuery来点击'a'元素。我有一个列表,其中每个链接都有一个类,我正在捕捉点击。

我想知道哪些链接已被点击(我为每个链接都有一个属性'setid'),并且还获得了点击鼠标的位置。

如何实现这一目标?

代码示例:

<a href="#" class="newItem" setid="28">click me</a>

$('.newItem').click(function (e) {
    alert(e.attr('setid'));
});

编辑: 好的,所以要获得我将使用e.pageX的位置

5 个答案:

答案 0 :(得分:37)

要使用jQuery方法,您必须通过调用jQuery来包装 this

$('.newItem').click(function () {
    alert($(this).attr('setid'));
});

答案 1 :(得分:2)

参考下面给出的代码:

document.getElementById("element_id").addEventListener("click",function(e)
{
 console.log(e.srcElement.getAttribute("data-name"));
},false);

答案 2 :(得分:1)

就像Skylar在您的问题评论中所说,您可以在新属性(HTML5有效)前使用“data-”。

<a href="#" class="newItem" data-setid="28">click me</a>

然后在jQuery(v1.4.3 +)中你可以得到它:

var setid = $(this).data("foo");

它比其他人提到的attr()更好一点。有关更多示例,请参阅此示例 - http://www.broken-links.com/2010/11/18/data-attributes-in-html-and-jquery/

答案 3 :(得分:0)

你正确的路径。

$(function(){

    $('.newItem').click(function () {
        alert( $(this).attr('setid') );
    })
}); 

答案 4 :(得分:0)

您的代码几乎是正确的获取属性。唯一缺少的是在jQuery包装器中包装this(一个DOM元素),因此您可以使用jQuery函数。 $(this).attr('setid')应该有用。

要获取页面坐标,请使用事件对象的pageXpageY属性。所以:

$('.newItem').click(function (e) { // e is the event object
    alert($(this).attr('setid'));
    alert(e.pageX);
    alert(e.pageY);
});

请参阅Event object上的文档。