获取位置后的属性字符串

Get attribute string after position

我有一堆带有数据属性的选择器,像这样

<span class="btn-input" data-input-goto="..."></span>
<span class="btn-input" data-input-suggest="..."></span>
<span class="btn-input" data-input-show="..."></span>

我想获取 'data-input' 之后的字符串,这样我就可以用它来执行一些代码。

这是我所做的,但没有成功:

$(".btn-input").click(function(event) {

    var action = $('[attr^="data-input"]', this).substr(11);

});

我收到错误:

Uncaught TypeError: undefined is not a function

如果你想获取数据属性的名称,你可以试试这个,jsFiddle:

$(".btn-input").click(function(event) {
    var action = Object.keys($(this).data())[0] // inputSuggest
    .toLowerCase() // inputsuggest
    .replace('input', ''); // suggest
});

更新: 对于使用多个属性,我可以在下面建议一个代码 jsFiddle

$(".btn-input").click(function(event) {
    var actions = Object.keys($(this).data());

    var action = actions.filter(function(item) {
      return /^input/.test(item);
    })[0] || '';

    action = action.toLowerCase().replace('input', '');

});