在1-9前加0

时间:2014-01-02 00:19:54

标签: jquery supersized

我有一个带有数字的div,它在php中动态变化。 该数字来自Supersized插件中的幻灯片编号。我已经尽力弄清楚如何更改插件,所以我可以用php修复它,但没有任何运气。

我想“强迫”这个数字在它前面总是有一个0,如果它低于10.所以如果数字是5,它应该是05。

我找到了一个使用jQuery的解决方案,但它只在下一个幻灯片加载并且数字发生变化时才会工作,然后下一个数字在它前面没有零。 这是脚本:

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

有没有办法让jQuery继续检查数字,每次数字低于10时加零?还是其他一些解决方案?

希望有人可以提供帮助:)

3 个答案:

答案 0 :(得分:0)

嗯,可以在php中做到这一点吗?

echo addZero(6);

function addZero($n){
  if($n < 10 && $n > -1) return "0".$n;
  else return $n;
}

答案 1 :(得分:0)

如果要使用JQuery,可以将div的内部元素更改为文本输入,并将其设置为文本样式。然后,将您的函数绑定到textfield的change事件。

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

这将允许在文本更改时调用您的函数。

[1]这是一个很好的链接,可以显示您可以在JQuery中使用的所有各种事件,以及[2]我在关于监视DOM属性的评论中链接的帖子。

  1. http://api.jquery.com/category/events/
  2. http://james.padolsey.com/javascript/monitoring-dom-properties/

答案 2 :(得分:0)

刚刚做了这个(非常脏)黑客,它解决了我的问题! 我能够在<span class="extra-zero">0</span>

之前插入<div class="number">

然后使用此代码隐藏或显示:

$(".number").bind("DOMSubtreeModified",function(){
    $(function() {
        $(".number").filter(function() {
            if ($(this).text() < 10 ) {
                $('.extra-zero').css({ 'display': 'inline' });
                    }                   

            else {
                $('.extra-zero').css({ 'display': 'none' });
                }                       
        });
    });
}); 

将前缀添加到零会更好,但它对我不起作用,所以我想我会坚持我的肮脏黑客。 谢谢大家回答并尝试提供帮助。