2012-01-09 9 views
0

たとえば、Stringオブジェクトのネイティブプロトタイプ機能の内部でjQueryを使用する方法を知りたいと思います。jQueryをネイティブStringプロトタイプ関数で使用するにはどうすればよいですか?

私が試してみた:

String.prototype.jQ = function() { 
    var $currentObject = $(this); 

    return ($currentObject.length) ? $currentObject.val() : this; 
}; 

var test = "#txtEmail"; 
alert(test.jQ()); 

運で。なにか提案を?

私は$(test).val()を使用できることを完全に認識していますが、自分のやり方でできるかどうかを知りたいと思います。

ありがとうございます!

+0

なぜ、-1? – Cybrix

+0

私は分かりません。 +1、良い質問:) – Ryan

答えて

2

奇妙なことに、jQueryはプリミティブな文字列値をセレクタとして受け入れます。これはがStringプロトタイプメソッドの文字列オブジェクトではありません。あなたは原始取得する.valueOf()を使用することができます。

String.prototype.jQ = function() { 
    var $currentObject = $(this.valueOf()); 

    return $currentObject.length ? $currentObject.val() : this; 
};

Here's a demo.

+0

ああ。素晴らしい答え。 – Cybrix

1

$を(この+ ""); // "this"は現在文字の配列であるため、

String.prototype.jQ = function() { 
    var $currentObject = $(this + ""); 

    return ($currentObject.length) ? $currentObject.val() : this; 
}; 

var test = "#txtEmail"; 
alert(test.jQ()); 
+0

あなたの答えもとても良いですが、ミニサイトがデモリンクを提供しているので、私は彼の答えを受け入れます。 – Cybrix

関連する問題