Ich wähle mit jQuery ein Array von Eingabeobjekten aus, und ich stoße auf ein interessantes Problem, wenn ich nach der Auswahl eines der Array-Elemente versuche, mehrere Methoden miteinander zu verketten. Kann mir jemand erklären, warum ich dieses Verhalten bekomme?Warum gibt Array [0] ein anderes Objekt zurück als array.first mit jQuery und warum kann ich .val() nicht verwenden?
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">
]
Wenn ich eines der Elemente auswählen mit jQuery .first()
oder .last()
und dann .val()
anrufe, bekomme ich den Erwartungswert von "138"
.
Wenn ich versuche, eine Position in dem Array zu verwenden, kann ich das Element des Arrays zurück:
var input = jQuery('.custom-size').first().find('input:hidden')[1]
returns =>
<input name="custom_order[custom_sizes_attributes][0][_destroy]" type="hidden" value="0">
Ich kann jedoch nicht .val()
auf diesem Objekt aufrufen. Ich erhalte stattdessen diese Fehlermeldung:
TypeError: Object #<HTMLInputElement> has no method 'val'
I .slice(x,y)
kann das einzelne Element zurück, aber dies scheint ziemlich dumm. Was vermisse ich hier.
zusammen ein jsfiddle dass demonstriert das Problem, so können wir damit spielen und vielleicht helfen. – michaelward82