63324


**やりたいこと1**  
・target id 内にある input type="text" で、nameがhoge_ で始まるものを全て、nameAry配列へ格納したい  
・期待しているnameAry配列結果 ['hoge_1', 'hoge_2', 'hoge_3'];

**やりたいこと2**  
・target id 内にある input type="text" で、idがpiyo_ で始まるものを全て、idAry配列へ格納したい  
・期待しているidAry配列結果 ['piyo_1', 'piyo_2', 'piyo_3'];

* * *

**対象のHTML (例)**

[code]

    <form id="target">
      //中略
      <input type="text" name="hoge_1" id="piyo_1">
      //中略
      <input type="text" name="hoge_2" id="piyo_2">
      //中略
      <input type="text" name="hoge_3" id="piyo_3">
      //中略
    </form>
    
[/code]


CC BY-SA 4.0
2020-02-24T13:14:58.587
63323
2020-02-24T17:00:33.620
2020-02-24T17:00:33.620
3060
7886
question
javascript jquery
指定要素内にある指定文字列で始まる<input type text>内の特定属性名を全て、JavaScript か jQueryを使用して配列へ格納したい


[属性セレクタ](https://developer.mozilla.org/ja/docs/Web/CSS/Attribute_selectors)で絞り込んでから、それらの要素の
`name`, `id` 属性を [`map`
メソッド](https://api.jquery.com/map/)で得ることで、そのような動作が実現出来ます。

[code]

    const attrs = (attr, value) => $(`input[type="text"][${attr}^="${value}"]`)
      .map((i, e) => $(e).attr(`${attr}`))
      .toArray();
    
    const nameAry = attrs("name", "hoge_");
    const idAry = attrs("id", "piyo_");
    
    console.log(nameAry); //=> Array(3) [ "hoge_1", "hoge_2", "hoge_3" ]
    console.log(idAry); //=> Array(3) [ "piyo_1", "piyo_2", "piyo_3" ]
[/code]

[code]

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form id="target">
      <input type="text" name="hoge_1" id="piyo_1">
      <input type="text" name="hoge_2" id="piyo_2">
      <input type="text" name="hoge_3" id="piyo_3">
    </form>
[/code]


CC BY-SA 4.0
2020-02-24T14:50:43.787
63324
2020-02-24T14:50:43.787
32986
63323
answer