web-dev-qa-db-ja.com

JavaScript名前配列入力セレクター(name [sometext])

IDを割り当てずに、jQueryでこのような名前付き入力を適切に選択するにはどうすればよいですか?

<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');
21
Ben Dauphinee

属性値を引用符で囲みます...

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

From attribute-equals-selectorのドキュメント ...

attribute属性名。

value属性値。引用符で囲まれていない単一のWordまたは引用符で囲まれた文字列のいずれかです。

単語が1つ以上あるので、引用する必要があります。

36
user1106925

CSSで意味を持つシンボルを含む属性セレクターの値を引用符で囲むことになっていると思います。このような:

input[type=hidden][name='person[first]']
3