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:
コメントを投稿