我有一个数据属性,如:
<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"]
但是如何使值动态化,然后在点击时获取值?
感谢
答案 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;
});