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

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

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

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

1回答

9150閲覧

jQuery で配列の中身が `E.fn.init ["267", prevObject: E.fn.init(1)]` となっているけど、これって何?

naserehari

総合スコア35

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

1クリップ

投稿2020/07/15 12:12

編集2020/07/15 23:31

以下の~~文を実行すると、、、~~関数があります。

js

1function checkedValues() { 2 var values = $('input:checkbox:checked').map(function() { 3 return $(this).val() 4 }); 5 return values 6}

chrome の console には以下のように表示されます。
この関数を実行している画面で Chrome console を開き、関数を直接入力して実行すると以下のように表示されました。

E.fn.init ["999", prevObject: E.fn.init(1)]

キャプチャは以下の通り

イメージ説明

なぜ、普通の配列じゃないのでしょうか? またこのオブジェクト(?)は何ですか? map 使うとこうなる?

尚、該当ソースの抜粋は以下の通りです。

html

1<input type="checkbox" name="hoge" id="hoge" value="267" /> 2<label for="hoge">hoge</label> 3 4<br> 5 6<input type="checkbox" name="fuga" id="fuga" value="888" /> 7<label for="fuga">fuga</label> 8 9<script> 10 function checkedValues() { 11 var values = $('input:checkbox:checked').map(function() { 12 return $(this).val() 13 }); 14 return values 15 } 16 17 function enableLink(b) { 18 if (b) { 19 $('#link').removeClass("disabled") 20 } else { 21 $('#link').addClass("disabled") 22 } 23 } 24 25 function setLinkState() { 26 var ids = checkedValues() 27 enableLink(ids.length > 0) 28 } 29 jQuery(function($) { 30 $('input:checkbox').click(function() { 31 setLinkState() 32 }) 33 setLinkState() 34 }) 35</script>

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

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

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

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

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

m.ts10806

2020/07/15 12:14

これ、どこでどのように実行したのでしょうか。 再現できる手順を明示してください。
miyabi_takatsuk

2020/07/15 12:33

該当のHTMLコードも記載してください。
naserehari

2020/07/15 23:09

失礼しました。 質問内容に整合性がありませんでした。 取り消し線を入れたりして内容を編集しました。
miyabi_takatsuk

2020/07/15 23:12 編集

HTMLの記載の依頼を無視しないでください・・・。 もっとも、maisumakunさんの回答で解決しそうですけどね。
naserehari

2020/07/15 23:33

HTML を追記しました。 はい、 maisumakun さんの回答で解決な感じです。 ありがとうございました。 (同様な問題に遭遇した他の人の役に立つページになればいいな...????)
guest

回答1

0

ベストアンサー

$().mapの返り値は、配列ではなくjQueryオブジェクトです(jQuery公式)。

普通の配列として使いたいのであれば、.get()を付けて変換する必要があります。

投稿2020/07/15 12:39

maisumakun

総合スコア145121

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

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

naserehari

2020/07/15 23:11

なるほど! jQuery オブジェクトなのか! chrome console で `checkedValues().get()` とすると期待したとおり、 `["267"]` と普通の配列として取得できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問