私はjQueryを使って入力オブジェクトの配列を選択していますが、配列要素の1つを選択した後に複数のメソッドを連鎖しようとすると面白い問題に遭遇しています。誰も私にこの現象をなぜ私に説明することができますか?array [0]がjQueryを使用してarray.firstとは別のオブジェクトを返すのはなぜですか、なぜ私は.val()を使用できませんか?
jQuery('.custom-size').first().find('input:hidden')
returns =>
[<input id="custom_order_custom_sizes_attributes_0_size_id" name="custom_order[custom_sizes_attributes][0][size_id]" type="hidden" value="138">
,
<input name="custom_order[custom_sizes_attributes][0][_destroy]" type="hidden" value="0">
]
私はjQueryの.first()
または.last()
を使用して要素の一つを選択し、.val()
を呼び出す場合、私は"138"
の期待値を取得します。私は、配列内の位置を使用しようとすると、私は配列の要素を返すことができ
:
var input = jQuery('.custom-size').first().find('input:hidden')[1]
returns =>
<input name="custom_order[custom_sizes_attributes][0][_destroy]" type="hidden" value="0">
は、しかし私は、このオブジェクトに.val()
を呼び出すことはできません。代わりに、私は、このエラーメッセージが出ます:
TypeError: Object #<HTMLInputElement> has no method 'val'
を私は単一の要素を返すために.slice(x,y)
を使用することができますが、これはむしろ愚かなようです。私はここで何が欠けているのですか?
一緒にそのjsfiddleを入れ私たちがそれを遊ぶことができ、多分助けることができるように、問題を実証します。 – michaelward82