想象一下,你有以下按钮:
<button id="id" data-trigger-function = "true", data-value-1="12345", data-value-guid="534-534-657647365-gd">Click Me for Function</button>
是否有可能在被调用的函数中得到类似的内容:
$(this).attr('data-value-'+ * ).each(...);
目标是在属性名称中使用通用选择器,而不是在属性值中使用(不是这样的:[name ^ ='something'])。目标是获取data-value-1和data-value-guid的值,因为它们都具有相同的开始..,这意味着数据值可以是,data-value-qwerty,data-value-xpto,无需知道*。
我搜索了这个,但找不到这样的东西,或任何提到这样的东西。可能吗?
谢谢! (抱歉英语不好)
答案 0 :(得分:3)
你可以获得所有属性并循环遍历它们:
$.each(this.attributes, function(index, attr){
var name = attr.name;
if(name.startsWith('data-value') {
var value = attr.value;
//You code goes here
}
});
答案 1 :(得分:1)
另一种选择:
您也可以选择仅通过data-*
进行迭代,然后按以下方式过滤以value
开头的内容:
$.each($("button").data(), function(key, val) {
if (key.match(/^value/i)) {
alert (key + ": " + val);
}
})
注意:上述内容要求您将data-value-1="12345"
更改为data-value-one="12345"