2012-02-12 11 views
20

Jak poprawnie wybrać tak nazwane wejście w jQuery bez przypisywania identyfikatorów?Podsystemy wprowadzania nazw tablic JavaScript (nazwa [sometext])

<input name="person[first]" type="hidden"> 
<input name="person[last]" type="hidden"> 

// Seems to be acting on multiple hidden elements instead of this named one 
// This sets the value of both of those hidden elements in some cases 
$("input[type=hidden][name=person[first]]").val('Test'); 

// So I've changed it to this. Is there a better way? 
$("input[name=person[first]]").val('Test'); 
+0

Czy możesz podać przykład tego, co nie działa, gdy masz wiele ukrytych elementów wejściowych z dołączonym HTML? Z twojego przykładu nie wynika to jasno. – Anurag

Odpowiedz

28

Put wartość atrybutu w cudzysłowie ...

$("input[type=hidden][name='person[first]']").val(); 
    // ---------------------^-------------^ 

Od the docs for attribute-equals-selector ...

atrybutu nazwę atrybutu.

wartość Wartość atrybutu. Może to być niecytowane jedno słowo lub cytowany ciąg znaków.

Ponieważ masz więcej niż jedno słowo, należy je cytować.

3

Jestem prawie pewien, że należy podać w cudzysłowach wartość selektora atrybutu, który zawiera symbole o znaczeniu w CSS. Tak:

input[type=hidden][name='person[first]'] 
Powiązane problemy