2012-02-21 13 views
0

私はかつてJqueryに関するテキストを見ました.Jqueryではいくつかのプロパティの名前が異なります。私はそれがvalまたは何かのようなJqueryでアクセスされるvalueプロパティだと思います。 JQueryはこれを多くしますか?プロパティ名を変更するJqueryの一般的なプラクティスですか?JQueryのプロパティ名には異なる名前がありますか?

答えて

1

jQueryはプロパティ名を変更しません。

jQueryは、jQueryオブジェクトの独自のメソッドを実装しています。これらはDOMプロパティやDOMメソッドとはまったく別物です。

たとえば、.val()メソッドを使用して、jQueryオブジェクトから任意の入力コントロールの値を取得できます。内部的には、jQueryオブジェクトの.val()メソッドはDOMオブジェクトのコンテンツにアクセスします(恐らく.valueプロパティを使用します)。しかし、DOMプロパティを置き換えるわけではありません。それはまだあなたの代わりにそれを使用することを選択しています。

同様に、jQueryにはオブジェクトのinnerHTMLを返す.html()メソッドがあります。ここでも、これはjQueryオブジェクトのjQueryメソッドであり、DOMプロパティのinnerHTMLを置き換えるものではありません。 、jQueryの方法の両方は、メソッド呼び出しであること

var text = $("#test").val(); 
var title = $("#title").html(); 

注意:

var text = document.getElementById("test").value; 
var title = document.getElementById("title").innerHTML; 

のjQueryを使用した:

<input id="test" type="text"> 
<div id="title">This is my Title</div> 

普通JavaScriptを使用して:

ここに説明するためにいくつかのコードの例でありますプロパティではありません。 jQueryのオブジェクトを使用している場合

でも、あなたは.get(n)メソッドを使用してjQueryオブジェクトのうち、DOMオブジェクトを取得し、DOMプロパティを使用することができ、通常はそうする理由がないにもかかわらず:

var text = $("#test").get(0).value; 
var title = $("#title").get(0).innerHTML; 
+0

' [0] '>>>' get(0) ' – Raynos

+0

@レイノス - あなたのポイントは何ですか?はい、 '[0]'はjQueryオブジェクトの '.get(0)'と基本的に同じですが、これは明らかにjQueryを知らない人だったので、 '.get(0) '' [0] 'を使うことができるようにjQueryオブジェクトを配列として扱うことを説明する必要があります。私はここでコーディングパターンを推奨していません、私はDOMプロパティとjQueryメソッドの違いをjQueryを知らない人に説明しようとしています。 – jfriend00

+0

私はちょうど '[0]'が常に '.get(0)'より優れていると言っています。どちらも同じように混乱しています – Raynos

0

jQueryはプロパティ名を変更しません。 jQueryはdom要素ではなくjQueryインスタンスを返します。

$thing[0].valueを実行すると動作します。 $thing.prop("value")を実行するとうまくいきます。

$thing.val();をjQueryのvalメソッド(これはvalのような "kind"ですが、奇妙なエッジケースのマジックも含む)を使用すると、おそらくラップされたdom要素の値が返されます。

0

valのケースは、すべてのフォームフィールド(テキストフィールド、ラジオボタン、チェックボックス、テキストエリアなど)の値を設定したり取得したりするためですすべての場合においてinput.value

関連する問題