Jquery 如何绑定到元素数据属性

Jquery 如何绑定到元素数据属性,jquery,html,Jquery,Html,我有一个数据属性,如: <a href="stuff" data-open-dialog="location-XXXX">click</a> <a href="stuff" data-open-dialog="location-YYYY">click</a> 但是,如何使该值成为动态的,然后在单击时获得该值呢 谢谢你所做的并不是真正的“束缚”。您只想检索它的值,或者我这么认为。 试着这样做: $('a[data-open-dialog]').c

我有一个数据属性,如:

<a href="stuff" data-open-dialog="location-XXXX">click</a>

<a href="stuff" data-open-dialog="location-YYYY">click</a>
但是,如何使该值成为动态的,然后在单击时获得该值呢

谢谢

你所做的并不是真正的“束缚”。您只想检索它的值,或者我这么认为。

试着这样做:

$('a[data-open-dialog]').click(function(e) {
    e.preventDefault();

    var location = $(this).data('open-dialog');

    ...
});
位置
将保留位置XXXX或位置YYYY。这应该是一个简单的事情,你剥离“位置-”部分


Fiddle:

我想您的意思是,您希望选择任何具有属性的元素,然后在单击事件中获取该属性的值。如果是,请使用has属性选择器:

$('a[data-open-dialog]').click(function() {
    var location = $(this).data('open-dialog');
});
如果只需要
XXX
部分,则应执行
.substr(9)
删除字符串的前9个字符

请参阅jQuery手册:

var data_contains = function(obj, val) {
    console.log(obj, val);
    if ($(obj).data('open-dialog') != undefined) {
        if ($(obj).data('open-dialog') == val) return true;
    }
    return false;
}

$('a').filter(function() {
    return data_contains(this, "location-XXXX");
}).click(function() {
    alert(this.innerHTML);
    return false;
});
$('a[data-open-dialog]').click(function() {
    var location = $(this).data('open-dialog');
});