我有一个数字到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</p>
<p class="number weight-400">3</p>
<p class="number weight-400">4</p>
<p class="number weight-400">5</p>
<p class="number weight-400">6</p>
<p class="number weight-400">7</p>
<p class="number weight-400">8</p>
<p class="number weight-400">9</p>
<p class="number weight-400">10</p>
我有jquery抓住他们所有,但我需要弄清楚如何将零添加到前9个而不是第10个:
$("p.number").each(function(i, index){
if (index < 10){
}
});
但是我的每个函数都抓取了所有<p>
而不是p标记内的整数。
答案 0 :(得分:8)
$("p.number").text(function(i, val){
return $.trim(val).length === 1 ? '0' + val : val;
});
如果你在整个集合中调用.text()
method,你将为集合中的每个项目调用你提供的函数 - 你从函数返回的值将是当前元素的新文本。
答案 1 :(得分:5)
另一个选项,正则表达式:
$('.number').text(function(i, txt) {
return txt.replace(/^\d$/, '0$&');
});
答案 2 :(得分:1)
$("p.number").each(function(i, elem){
var numb = parseInt( $(elem).text(), 10 );
numb = numb < 10 ? '0' + numb : numb;
$(elem).text(numb);
});
答案 3 :(得分:1)
这是一个快速的肮脏方式:
var num = 2;
num = (num < 10)?("0"+num):num; //"02"
哈,我欺骗了你。它甚至不是一个肮脏的代码。