1

少し議論の余地のある点ですが、次の 2 つの行が同等ではない理由が今でも気になります。

$("#boink").selectionStart = 3;
document.getElementById("boink").selectionStart = 3;

実際の例は、この質問から来ています。何らかの理由で、jQuery フェッチされたコントロールには、プロパティselectionStartselectionEndもありません。

それでも jQuery セレクターを適用する場合、代わりに何を使用する必要がありますか?

4

3 に答える 3

4

これ$("#boink")は、DOM 要素自体ではなく、jQuery オブジェクトであるためです。これらの2行を同等にするためには、次のことを行う必要があります

$("#boink")[0].selectionStart = 3;

配列には、一致したすべての DOM 要素が含まれます。IDで選択しているため、1つの要素が最も一致する可能性があるため、次を使用して最初の要素を選択するだけです[0]

于 2013-07-10T12:18:53.810 に答える
2

いつでも元のDOM要素を取得できます

$("#boink")[0].selectionStart = 3;
于 2013-07-10T12:19:17.097 に答える
2

$("#boink")コントロール自体ではなく、jQuery オブジェクトを返します。コントロールを取得するには、.getメソッドまたは[]表記を使用して要素を取得する必要があります。

$("#boink")[0].selectionStart = 3;
$("#boink").get(0).selectionStart = 3;
于 2013-07-10T12:19:20.733 に答える