获取位置后的属性字符串
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', '');
});
我有一堆带有数据属性的选择器,像这样
<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', '');
});