質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

36894閲覧

jQueryでフォームのname属性が配列やhash形式の場合にセレクタの指定の仕方

退会済みユーザー

退会済みユーザー

総合スコア0

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

3クリップ

投稿2016/02/26 09:50

お世話になっております。

簡単な質問かもしれませんが,フォームでPOSTパラメータをinputタグで指定している場合に,
name属性に[]が含まれるDOMをjQueryで指定しようとする以下のような書き方だとエラーが出ました。

javascript

1$('hoge[params1]')

また,以下のように[]をエスケープしてもDOMが取れません

javascript

1$('hoge¥[params1¥]')

これらのDOMは他の属性を利用してDOMをとるしかないのでしょうか?
もしご存知な方がいたらご教示いただきたいです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

たとえば以下の name 属性を持つ要素を対象にする場合は以下のように書けばいいと思います。

lang

1<input name="params[]" type="checkbox">

lang

1$('input[name="params[]"]')

投稿2016/02/26 10:14

chitoku

総合スコア1610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/27 09:10

できました! この方法が一番単純なので採用させていただきます。
guest

0

"name[id=[xxxxx]]"
これのエスケープは、javascript が文字列を評価する際エスケープです。jquery の xpath パーサに対するエスケープなので、
\[
としないとダメなのでは?
できるかどうかは別として、きになりました。

投稿2016/02/26 10:18

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/27 09:13

この方法でもできました。仕組みも理解できました。 ありがとうございます。
guest

0

取得のサンプルを書きました。今回のケースの場合、$input3の形を使えば良いと思います。
実際にconsole.logで表示される結果を見ていただけると、よく理解いただけるかと思います。

html

1<input name="hoge[params1]"> 2<input name="hoge[params2]">

javascript

1var $input1 = $('input[name^=hoge]'); 2 3// nameが「hoge」で始まるinputがすべて取れる 4console.log($input1); 5 6var $input2 = $('input[name*=params1]'); 7 8// nameに「params1」が含まれるinputがすべて取れる 9console.log($input2); 10 11var $input3 = $('input[name^=hoge][name*=params1]'); 12 13// nameがhogeで始まり、かつparams1が含まれるinputを取得する 14console.log($input3); 15

投稿2016/02/26 10:12

編集2016/02/26 10:14
yamato_hikawa

総合スコア2092

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/27 09:15

この方法で行うことを最終手段として考えていましたがもっといい方法があったのでそちらを採用します。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問