jqueryのプロパティ名は異なる名前を持っていますか?
-
28-10-2019 - |
質問
私はかつて、jQueryについてJqueryでは、いくつかのプロパティが異なる名前を持っていると述べているjqueryについてのテキストを見ました。 jqueryでValまたはそのようなものとしてアクセスされたのは、Valueプロパティだったと思います。 JQueryはこれをたくさんしますか? jQueryの一般的な慣行はプロパティ名を変更するのですか?
解決
jQueryはプロパティ名を変更しません。
jQueryは、JQueryオブジェクトで独自の方法を実装しています。これらは、DOMプロパティまたはDOMメソッドから完全に分離されています。
たとえば、jqueryオブジェクトから入力コントロールの値を取得できます。 .val()
方法。内部的には、 .val()
jQueryオブジェクトのメソッドは、domオブジェクトの内容にアクセスします(おそらく .value
プロパティ)、しかし、それはそのdomプロパティを決して置き換えていません。代わりに使用することを選択しています。
同様に、jQueryにはaがあります .html()
を返す方法 innerHTML
オブジェクトの。繰り返しますが、これはjQueryオブジェクトのjqueryメソッドであり、DOMプロパティを置き換えません innerHTML
何らかの形で。
説明するコードの例を次に示します。
<input id="test" type="text">
<div id="title">This is my Title</div>
Plain JavaScriptの使用:
var text = document.getElementById("test").value;
var title = document.getElementById("title").innerHTML;
jqueryの使用:
var text = $("#test").val();
var title = $("#title").html();
両方のjQueryの方法は、プロパティではなくメソッド呼び出しであることに注意してください。
jQueryオブジェクトを使用している場合でも、 .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のような「親切」ですが、奇妙なエッジケースマジックの束も行います)であり、「おそらく」ラップドム要素の値を「おそらく」返します。
私が知っているわけではありません、の場合 val
これは、あらゆるフォームフィールド(テキストフィールド、ラジオボタン、チェックボックス、テキストリアスなど)の値を設定または取得できるためです。 input.value
すべての場合において。