• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryで複数の要素オブジェクトを取得したあと)

jQueryで複数の要素オブジェクトを取得した後で、それぞれのオブジェクトに値を取得する方法はありますか?

このQ&Aのポイント
  • この質問では、jQueryで複数の要素オブジェクトを取得した後、それぞれのオブジェクトに値を取得する方法について尋ねています。
  • 現在のソースコードでは、一部の要素オブジェクトに対しては「.val()」メソッドが使えず、Elementオブジェクトのvalueプロパティを使用しています。
  • 質問者は「.val()」と「value」の混在が気になり、統一したいと考えています。しかし、for文で要素にアクセスする際には、現在のままの実装が読みやすいと感じています。

質問者が選んだベストアンサー

  • ベストアンサー
  • DoubtOwl
  • ベストアンサー率50% (63/124)
回答No.4

jqueryにもeq()はあるようですよ alert($("[name=nn]").eq(2).val()); // (3) for(var i =0; i < $("[name=nn]").length; i++){   alert( $("[name=nn]").eq(i).val() ); }

pringlez
質問者

お礼

これですね! おかげさまで、スッキリ&jQueryらしい記述に書き換えることができました。 質問をしてみてよかったです。ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

そもそも要素を取得するのにjQueryを使わなければいいのでは? var $ = document.querySelectorAll.bind(document)

pringlez
質問者

お礼

jQueryの質問をしているのに、jQueryを使わなければいいとはなかなかアバンギャルドな回答ですね。 ありがとうございました

すると、全ての回答が全文表示されます。
回答No.2

いっぺんに処理するところ以外は $("[name=nn]")で取るんじゃなくって 単体で取るのが一番じゃない?

pringlez
質問者

お礼

ありがとうございました

pringlez
質問者

補足

「いっぺんに処理するところ以外」というのがどういう状況なのかよく分かりませんが、配列の長さが変わる可能性があり、その最初の要素だけ飛ばして繰り返し同じ内容の処理をしたいというときには単体で取るというのは適さないと思います。配列の長さが変わるたびにコードを書き換えなければならなくなってしまうので、

すると、全ての回答が全文表示されます。
回答No.1

eachとか使わないの? いちいちオブジェクトの件数調べたりする必要ないけど。 $('.hoge').each(function(index) { alert(index+' = ' + $(this).val()); }); みたいな。

pringlez
質問者

お礼

なるほど。eachを使えばいいんですね。単純なループはこれでいけました。ソースも書き換えました。しかし、1行飛ばして開始するケースや複数のオブジェクトを同時に処理する場合(表形式で1行にテキストボックスが2つ、selectリストが1つとか)などやや複雑な場合には、あまり適さないように感じました。なので、そちらは今のところもとのコードのままにしています…。 jQueryは9/9にはじめたばかりでまだ一ヵ月半くらいしかやっていないことと、一人でやっているので「jQueryの普通」がまだ分からなかったりします。 ですので助かりました。ありがとうございました

pringlez
質問者

補足

質問文中に間違いがありました。 このスペースをお借りして訂正させていただきます。 # 値を取得するコードで「.val()」「value」が混在しているのが気持ち悪く、 # 「value」に統一したいです。 は間違いです。 # 「.val()」に統一したいです。 が正しいです。

すると、全ての回答が全文表示されます。

関連するQ&A