C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Selectorからオブジェクトの特定要素だけ取得したい


(過去ログ 177 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■101680 / inTopicNo.1)  Selectorからオブジェクトの特定要素だけ取得したい
  
□投稿者/ ぼぼ (18回)-(2023/03/30(Thu) 10:48:13)

分類:[JavaScript] 

すみません。古いですがjQueryの質問です。
CheckBoxのチェックだけついてる項目値を取得したい時のロジックですが。

◆HTML
<input type="checkbox" name="hoge" value="001">
<input type="checkbox" name="hoge" value="002">

◆JS
let ids = [];
const checks $("[name=hoge]:checked");
for(let check of checks){
ids.push(check.value);
}

で取得できるのですが、↓の一文で取得できないでしょうか?
const checks $("[name=hoge]:checked");

.val()、filter(),foreach()でやってみましたが、Objectを返してしまい実現出来てません。
お分かりになる方いましたら宜しくお願い致します。
引用返信 編集キー/
■101682 / inTopicNo.2)  Re[1]: Selectorからオブジェクトの特定要素だけ取得したい
□投稿者/ 魔界の仮面弁士 (3612回)-(2023/03/30(Thu) 11:08:25)
2023/03/30(Thu) 11:19:28 編集(投稿者)

No101680 (ぼぼ さん) に返信
> ↓の一文で取得できないでしょうか?
> const checks $("[name=hoge]:checked");


これでどうでしょう。

const checkedValueArray = [...$("[name=hoge]:checked")].map(x => x.value);

あるいは

const checkedValueArray = [...$("[name=hoge]:checked")].map(x => $(x).val());

あるいは

const checkedValueArray = [...$("[name=hoge]:checked").map((x,y) => y.value)];

あるいは

const checkedValueArray = [...$("[name=hoge]:checked").map((x,y) => $(y).val())];
引用返信 編集キー/
■101683 / inTopicNo.3)  Re[2]: Selectorからオブジェクトの特定要素だけ取得したい
□投稿者/ ぼぼ (20回)-(2023/03/30(Thu) 11:21:07)
No101682 (魔界の仮面弁士 さん) に返信
> const checks = [...$("[name=hoge]:checked")].map(x => x.value);

ありがとうございます!取得できました!
こういう書き方があるんですね。。ググってもなかなか欲しいロジックが無く、本当に助かりました。

解決済み
引用返信 編集キー/
■101684 / inTopicNo.4)  Re[3]: Selectorからオブジェクトの特定要素だけ取得したい
□投稿者/ 魔界の仮面弁士 (3613回)-(2023/03/30(Thu) 13:40:12)
No101683 (ぼぼ さん) に返信
> ありがとうございます!取得できました!
投降後に書き換えてしまいましたが、最終的に 4 パターン列挙しています。
前半 2 つは Array オブジェクトの map メソッド、
後半 2 つは jQuery オブジェクトの map メソッドです。

Array の map は、function(element, index, array) なコールバックですが
jQuery の map は、function(index, domElement) なコールバックなので
引数順序にご注意ください。


>> const checks = [...$("[name=hoge]:checked")].map(x => x.value);
ただし const したところで、配列が不変になるわけではないので、
.push などとして書き換えることはできてしまいます。

もしも要素の変更・追加・削除を禁止したいのであれば、
 const ids = Object.freeze([...$("[name=hoge]:checked").map((x,y) => y.value)]);
などとします。


> こういう書き方があるんですね。。ググってもなかなか欲しいロジックが無く、本当に助かりました。
... は「スプレッド構文(Spread syntax)」と呼ばれています。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -