如何从id值中获取数字?

时间:2014-04-03 05:19:54

标签: jquery

我有以下html:

<button type="button" id="step-1">step1</button>
<button type="button" id="step-2">step2</button>
<button type="button" id="step-3">step3</button>
<button type="button" id="step-4">step4</button>

我想从id获得1,2,3,4的数字。所以像这样使用:

$('[id^=step]').on('click',function(){
    var stepbg = parseInt($(this).attr('id'),10);alert(stepbg);
});

但它警告NaN。 demo

9 个答案:

答案 0 :(得分:2)

您可以简单地使用$(this).attr('id')

,而不是使用this.id

尝试这样,

$('[id^=step]').on('click', function () {
    var stepbg = parseInt(this.id.replace(/\D/g, ''));
    alert(stepbg);
});

SEE THIS FIDDLE DEMO

答案 1 :(得分:1)

您可以使用split()

实现这一目标
$('[id^=step]').on('click',function(){
    var stepbg = parseInt($(this).attr('id').split("-")[1],10);alert(stepbg);
});

你也可以使用替换功能

$('[id^=step]').on('click',function(){
    var stepbg = parseInt($(this).attr('id').replace('step-',''));  alert(stepbg);
});

这是另一个正则表达式示例

 $('[id^=step]').on('click',function(){
var stepbg = parseInt($(this).attr('id').match(/\d+$/)[0], 10);  alert(stepbg);
    });

答案 2 :(得分:0)

尝试使用简单的正则表达式从id

中提取最后一组数字
var stepbg = parseInt(this.id.match(/\d+$/)[0], 10);

演示:Fiddle

答案 3 :(得分:0)

  

在jquery中使用split()。

    $('[id^=step]').on('click',function(){
    var stepbg = parseInt($(this).attr('id').split("-")[1] ,10);
        alert(stepbg);
   });

Fiddle

答案 4 :(得分:0)

你可以用你不想要的空字符串替换id中的字符串,并从中获取数字。

<强> Live Demo

$('[id^=step]').on('click',function(){
    var stepbg = parseInt(this.id.replace('step-',''));  
});

答案 5 :(得分:0)

尝试 split()

    arr = $(this).attr('id').split('-');//split to array
    stepbg = parseInt(arr[arr.length-1]); //get last element
    alert(stepbg);

demo

答案 6 :(得分:0)

jsFiddle Demo

说明:这是快速而又脏的,我建议使用正则表达式或拆分来获得更好的生产示例。

$('[id^=step]').on('click',function(){
    var stepbg = parseInt($(this).attr('id').substring(5), 10);
    alert(stepbg);
});

答案 7 :(得分:0)

尝试下面给出的代码:

   $('[id^=step]').on('click',function(){
    var id =$(this).attr('id').replace(/step-/, '');
    alert(id)
});

答案 8 :(得分:0)

$('[id^=step]').on('click',function(){
    var stepbg = $(this).attr('id').split('-');
    alert(stepbg[1]);
});

FIDDLE DEMO