如何绑定到Elements数据属性

时间:2011-11-17 18:27:10

标签: jquery html5

我有一个数据属性,如:

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

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

如何绑定到数据打开对话框,并获取XXXX或YYYY的值?

我知道如何绑定到特定值,例如:

a[data-open-dialog="location-XXXX"]

但是如何使值动态化,然后在点击时获取值?

感谢

3 个答案:

答案 0 :(得分:5)

你在做什么并不是真正的“绑定”。您只想检索其值,或者我认为。

尝试这样的事情:

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

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

    ...
});

location然后会保存 location-XXXX location-YYYY 。剥离“位置”部分应该是一件简单的事情。

答案 1 :(得分:2)

我认为您的意思是要选择具有属性的任何元素,然后在click事件中获取该属性的值。如果是这样,请使用has-attribute选择器:

$('a[data-open-dialog]').click(function() {
    var location = $(this).data('open-dialog');
});

如果你只想要XXX部分,你应该.substr(9)删除字符串的前9个字符。

参见jQuery手册:

答案 2 :(得分:0)

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;
});

小提琴:http://jsfiddle.net/maniator/H75JD/3/