jQueryでムリクリ文字列を扱う

jQueryで配列や簡単なオブジェクトが扱えることが分かったので、それなら文字列も扱ってやろうじゃないか、という安易な発想で。

例えば、

$("foo")
とすると、この"foo"はドコに格納されるのか?というと、selectorプロパティに格納されている。

alert( $("foo").selector );
これで"foo"と表示される。


なので、こんなメソッドにしてみる。
jQuery.fn.alert = function(){
    alert(this.selector);
    return this;
}

$("foo").alert();//foo

難点はメソッドチェーンが行えないこと。上記のようにメソッド内で完結すれば良いのだが、値を返さなければ意味がない。
処理を行い、その都度selectorから文字列を取得する方法も考えられるがあまり現実的ではない気がする。
そもそも今やっていることが現実的ではないか... (^_^;)


そんなことを思いつつも

padLeftメソッド追加する

jQuery.extend(jQuery.fn,{
    times: function( n ){
        var ret = "", s = this.selector;
        for ( n *= 1 ; n > 0 ; n >>>= 1, s += s ) {
            if (n & 1) 
                ret += s;
        }
        return ret;

        //easy, but a little slow.
        //return new Array(+n + 1).join(this.selector);
    },
    padLeft: function(totalWidth, paddingChar){
        var s = this.selector, len  = totalWidth - s.length;
        return ( len < 1 ? "" : jQuery(paddingChar).times(len).slice(0, len) ) + s;
    }
});

Usage

var s = $("123").padLeft(6,"0");
//s -> 000123

0 Comments:

Sony Style(ソニースタイル)
デル株式会社

Recent Posts