Jquery:从ID获取数字

时间:2012-02-17 14:51:39

标签: jquery

您在另一个问题中提到了这一点:jquery get number from id

您应该养成在属性名称中使用分隔符的习惯(即button-1,button_1)。许多优点之一是它可以更容易地从字段中提取数字或其他信息(即,通过将字符串拆分为' - ')。

如果在属性名称中使用分隔符,如何提取数字?

谢谢!

3 个答案:

答案 0 :(得分:4)

  1. .attr('id')可用于检索ID属性。
  2. 然后,使用.split函数将字符串拆分为分隔符。
  3. 从索引[1]获取号码。
  4. 代码:

     var delimiter = '-';
     var num = $("element").attr('id').split(delimiter)[1];
     // Expected format: <anything 1>-<anything 2>
     // Note that <anything 2> is not necessarily a number
    

    以前的方法非常依赖于id格式。一个更坚实的方法是正则表达式:

    var num = /\d+/.exec($("element").attr('id')); // Selects all consecutive digits
    // Examples:
    //  button_1 = 1    button2 = 2     1st = 1     button4--5 = 4
    

    要匹配最后的数字,请使用:

    var num = /\d+(?=\D*$)/.exec($("element").attr('id'));
    

答案 1 :(得分:1)

selectordelimiter替换为您的实际值。

var parts = $('#selector').attr('id').split('delimiter');
var my_number = parts[parts.length - 1];
alert(my_number);

答案 2 :(得分:1)

正如其他人已经建议你可以使用:

非常简单地分割出超级或下划线
var number = str.split("-")[1]

jQuery split() documentation

这里另一个可行的选择是使用正则表达式模式提取数字。如果您从中提取数字的字符串没有分隔符,这将非常有用。我没有在我的特定编码风格中使用分隔符,所以我使用的是:

var number = str.match(/\d+/);

jQuery match() documentation