user[addresses_attributes][1][zipcode]というnameを所持するタグの内容とuser[addresses_attributes][0][zipcode]のnameを所持するタグの内容を交換したいのですが、どのような指定を行えばよいでしょうか?
正規表現では[]はどのように判別することが出来ますか?このまま使用してもアルファベット一文字ずつ判別されてしまうのでどうしようもありません
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
エスケープしておけばいいでしょう
ただし、円マークを二重にしなくてはいけません
javascript
1$(function(){ 2 $('input[type=button][value=check]').on('click',function(){ 3 var reg=new RegExp('^user\\[addresses_attributes\\]\\[([0-9]+)\\]\\[zipcode\\]$'); 4 $('input[type=text]').each(function(){ 5 if(r=$(this).prop('name').match(reg)){ 6 console.log(r[1]+":"+$(this).val()); 7 } 8 }); 9 }); 10});
HTML
1<input type="button" value="check"><br> 20:<input type="text" name="user[addresses_attributes][0][zipcode]" value="aaa"><br> 31:<input type="text" name="user[addresses_attributes][1][zipcode]" value="bbb"><br> 42:<input type="text" name="user[addresses_attributes][2][zipcode]" value="ccc"><br> 5
逆順
逆順のサンプルを追記しておきます
javascript
1$(function(){ 2 $('input[type=button][value=check]').on('click',function(){ 3 var reg=new RegExp('^user\\[addresses_attributes\\]\\[([0-9]+)\\]\\[zipcode\\]$'); 4 $($('input[type=text]').get().reverse()).each(function(){ 5 if(r=$(this).prop('name').match(reg)){ 6 console.log(r[1]+":"+$(this).val()); 7 } 8 }); 9 }); 10});
投稿2016/09/29 04:35
編集2016/09/29 06:43総合スコア114769
0
もし2つの要素だけが対象であれば、正規表現は使わなくても済むかと思われます。
javascript
1 2// name属性から要素を特定 3var code1 = document.querySelector('input[name="user[addresses_attributes][0][zipcode]"]'); 4var code2 = document.querySelector('input[name="user[addresses_attributes][1][zipcode]"]'); 5 6var tmp = code1.value; // 別変数に避ける 7code1.value = code2.value; // 2番目の要素の内容を1番目の要素へ 8code2.value = tmp; // 1番目の要素の内容を2番目の要素へ 9
投稿2016/09/29 04:40
総合スコア295
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
HTML
1<tag name="user[addresses_attributes][0][zipcode]">zipcode0</tag> 2<tag name="user[addresses_attributes][1][zipcode]">zipcode1</tag>
これを
HTML
1<tag name="user[addresses_attributes][0][zipcode]">zipcode1</tag> 2<tag name="user[addresses_attributes][1][zipcode]">zipcode0</tag>
こうしたいという事でしょうか。
例えばjQueryを使って
javascript
1//要素の取得 2var zip0 = $('tag[name=user\\[addresses_attributes\\]\\[0\\]\\[zipcode\\]); 3var zip1 = $('tag[name=user\\[addresses_attributes\\]\\[1\\]\\[zipcode\\]); 4//要素の中身を取得 5var zip0val = zip0.html(); 6var zip1val = zip1.html(); 7//要素の中身を入れ替え 8zip0.html(zip1val); 9zip1.html(zip0val);
と言う感じで可能かと思います。
投稿2016/09/29 04:33
総合スコア5405
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/29 06:23
2016/09/29 06:27
2016/09/29 06:42