从特定数据属性获取值

Getting values from a specific data attributes

本文关键字:获取 数据属性      更新时间:2023-09-26

我试图建立一个跟踪系统,使用数据值来保持事件类型。我的HTML看起来像这样:

<a href="#articles" class="track" data-track="article_search_results">Articles</a>
<a href="#books" class="track" data-track="books_search_results">Books</a>
<a href="#notes" class="track" data-track="notes_search_results">Notes</a>

JQuery是这样的:

$(document).delegate('.track', 'click', function(e) {   
    console.log($(this));
    console.log($(this).data("track")); 
});

使用具有类.track的每个元素,我试图从中获取数据跟踪值,但它总是返回未定义。我做错了什么?

我有图标在我的代码,这是导致问题:

<a href="#articles" class="track" data-track="article_search_results"><i class="icon-pencil"></i></a>

使用attr,您可以返回元素的data-track值,例如:

代码:

$(document).on('click', '.track', function(e) {   
    var dataTrack = $(this).attr("data-track");
});

根据jQuery文档,delegate已经被on取代,以上是一个使用on

的例子

或者,在您的情况下,您可能只使用click函数,我觉得更整洁,但取决于您:

$(".track").click(function(e) {   
    var dataTrack = $(this).attr("data-track");
});

小提琴:

使用on:
http://jsfiddle.net/jUSUK/1/

使用click:
http://jsfiddle.net/jUSUK/2/

关于attr的更多信息:

http://api.jquery.com/attr/

试试这个

           $(document).delegate('.track', 'click', function(e) {   
                console.log($(this).attr("data-track")); 
           });

JsFiddle: http://jsfiddle.net/FZEKC/