2011-10-18 11 views
0

に文字列にプレースホルダを追加するにはどうすれば...このように使用することができ、このジャバスクリプト

someString.placeholder("waiting for text") 

のように本当に簡単に文字列のデフォルトのプレースホルダを設定できるようにしたいと思い

$("p.some-class").html(someString.placeholder("waiting for text")); 

'someString'が空の場合、ユーザーは「Waiting for text」と表示されますが、文字列の長さが0より大きい場合は、実際の文字列が表示されます。

私はこの

String.prototype.placeholder = function(placeholder){ 

    return (this.length > 0) ? 
    this : 
    "<span class=\"placeholder-string\">" + placeholder + "</span>"; 

} 

のようにStringオブジェクトを拡張しようとしたが、それは動作して表示されません。誰の考え?

興味のある方はJSFiddleです

+0

どのように 'span'タグに文字列を入力していますか? – Neal

+0

なぜですか?私はCSSでそれをスタイルしたいので。だから、プレースホルダーはちょっとノックバックされています。 – gargantuan

+3

論理ORを使うのはどうですか? 'someString || "テキストを待っている"とは? –

答えて

1

thisStringオブジェクトであり、プリミティブバージョンではありません。それをプリミティブに変換する必要があります。また、除外することができます> 0

String.prototype.placeholder = function(placeholder){ 

    return this.length ? 
    this + "" : 
    "<span class=\"placeholder-string\">" + placeholder + "</span>"; 

}