1

我有一个直到数字 10 的数字列表:1,2,3,4,5,6,7,8,9,10

除了数字 10 之外,我需要在每个数字前面加一个零。

所以看起来像这样:01,02,03,04,05,06,07,08,09,10

HTML 看起来像这样:

<p class=​"number weight-400">​1</p>​
<p class=​"number weight-400">​2​&lt;/p>​
<p class=​"number weight-400">​3​&lt;/p>​
<p class=​"number weight-400">​4​&lt;/p>​
<p class=​"number weight-400">​5​&lt;/p>​
<p class=​"number weight-400">​6​&lt;/p>​
<p class=​"number weight-400">​7​&lt;/p>​
<p class=​"number weight-400">​8​&lt;/p>​
<p class=​"number weight-400">​9​&lt;/p>​
<p class=​"number weight-400">​10​&lt;/p>​

我有 jquery 来抓取它们,但我需要弄清楚如何在前 9 个而不是第 10 个中添加一个零:

$("p.number").each(function(i, index){
    if (index < 10){

    }
});

但是我的每个函数都抓取<p>了 p 标签内的所有整数,而不是整数。

4

4 回答 4

8
$("p.number").text(function(i, val){
    return $.trim(val).length === 1 ? '0' + val : val;
});

如果您在整个集合上调用该.text()方法,则将为集合中的每个项目调用您提供的函数 - 您从函数返回的值将是当前元素的新文本​​。

于 2013-02-24T01:34:16.500 回答
5

另一种选择,使用正则表达式:

$('.number').text(function(i, txt) {
  return txt.replace(/^\d$/, '0$&');
});

http://jsbin.com/axuyiv/1/edit

于 2013-02-24T01:38:56.623 回答
1

这是一个快速肮脏的方式:

var num = 2;
num = (num < 10)?("0"+num):num;  //"02"

哈我骗了你。它甚至不是脏代码。

于 2013-02-24T01:34:55.277 回答
1
$("p.number").each(function(i, elem){
    var numb = parseInt( $(elem).text(), 10 );

    numb = numb < 10 ? '0' + numb : numb;
    $(elem).text(numb);
});

小提琴

于 2013-02-24T01:26:02.100 回答