是否有可能找到具有特定开始的html属性? (不是特定值)

时间:2015-07-23 12:01:42

标签: javascript jquery html razor

想象一下,你有以下按钮:

<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,无需知道*。

我搜索了这个,但找不到这样的东西,或任何提到这样的东西。可能吗?

谢谢! (抱歉英语不好)

2 个答案:

答案 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"

A Demo