私はかつて、Jqueryでいくつかのプロパティが異なる名前を持っているというJqueryに関するテキストを見ました。Jqueryでvalなどとしてアクセスされるのはvalueプロパティだったと思います。JQueryはこれをたくさん行いますか?プロパティ名を変更するJqueryの一般的な方法はありますか?
3 に答える
jQueryはプロパティ名を変更しません。
jQueryは、jQueryオブジェクトに独自のメソッドを実装します。これらは、DOMプロパティまたはDOMメソッドから完全に分離されています。
たとえば、.val()
メソッドを使用してjQueryオブジェクトから任意の入力コントロールの値を取得できます。内部的には.val()
、jQueryオブジェクトのメソッドは(おそらくプロパティを使用して)DOMオブジェクトのコンテンツにアクセスしますが、.value
そのDOMプロパティを置き換えることはありません。代わりにそれを使用することを選択することはまだあります。
同様に、jQueryにはオブジェクトの.html()
を返すメソッドがあります。innerHTML
繰り返しますが、これはjQueryオブジェクトのjQueryメソッドであり、DOMプロパティinnerHTML
を置き換えるものではありません。
説明するためのいくつかのコード例を次に示します。
<input id="test" type="text">
<div id="title">This is my Title</div>
プレーンJavaScriptの使用:
var text = document.getElementById("test").value;
var title = document.getElementById("title").innerHTML;
jQueryの使用:
var text = $("#test").val();
var title = $("#title").html();
両方のjQueryの方法は、プロパティではなくメソッド呼び出しであることに注意してください。
jQueryオブジェクトを使用している場合でも、メソッドを使用してjQueryオブジェクトからDOMオブジェクトを取得し.get(n)
、DOMプロパティを使用できますが、通常はそうする理由はありません。
var text = $("#test").get(0).value;
var title = $("#title").get(0).innerHTML;
jQueryはプロパティ名を変更しません。jQueryは、dom要素ではなくjQueryインスタンスを返します。
あなたがそうするならば、$thing[0].value
それはうまくいくでしょう。あなたがそうするならば、$thing.prop("value")
それはうまくいくでしょう。
$thing.val();
jQueryのvalメソッド(valのような「種類」ですが、奇妙なエッジケースの魔法もたくさん実行します)を使用すると、ラップされたdom要素の値が「おそらく」返されます。
私が知っているわけではありませんがval
、すべてのフォームフィールド(テキストフィールド、ラジオボタン、チェックボックス、テキストエリアなど)の値を設定または取得できるため、input.value
すべての場合で単純に行うことはできません。