入力タイプが常に変化するページがあり、入力タイプに応じて値を取得する必要があります。したがって、タイプがラジオの場合は、どれがチェックされているかを取得する必要があり、チェックボックスの場合は、どれがチェックされているかを知る必要があり、ドロップダウンの場合は、どれが選択されているかを知る必要があり、テキスト/テキストエリアの場合は、値を知る必要があります。
それをどうやって行うか、何かアイデアはありますか?
ベストアンサー1
2013 年 2 月 1 日編集。この回答の人気と、プロパティと属性に関するバージョン 1.9 (および 2.0) での jQuery の変更により、入力、ボタン、および一部の選択でプロパティ/属性にアクセスするときにどのように動作するかを確認するためのメモとフィドルを追加しました。フィドルは次のとおりです。http://jsfiddle.net/pVBU8/1/
すべての入力を取得します。
var allInputs = $(":input");
すべての入力タイプを取得します:
allInputs.attr('type');
値を取得します:
allInputs.val();
注意: .val() は、関連する型では :checked と同じではありません。以下を使用してください。
.attr("checked");
編集: 2013 年 2 月 1 日 - jQuery 1.9 では、attr は変更されたプロパティに対して適切な値を返さないため、attr() ではなく prop() を使用してください。
.prop('checked');
あるいは単に
$(this).checked;
チェックの値(現在の値)を取得します。チェックされているものだけが必要な場合は、単に ':checked' を使用します。
編集: タイプを取得する別の方法は次のとおりです:
var allCheckboxes=$('[type=checkbox]');
編集2: 次の形式に注意してください:
$('input:radio');
より好まれる
$(':radio');
どちらも次のようになります:
$('input[type=radio]');
しかし、「入力」が望ましいので、入力のみを取得し、の形式が$(':radio')
使用されるときにユニバーサル「*」を使用しません。これは、$('*:radio');
編集 2015 年 8 月 19 日: の設定を$('input[type=radio]');
使用すると、最新のブラウザーでラジオ入力の検索を最適化できるようになります。
編集 2013年2月1日 コメント 要素の選択について @dariomac
$('select').prop("type");
「multiple」属性に応じて「select-one」または「select-multiple」のいずれかを返します。
$('select')[0].type
最初の選択が存在する場合は同じものを返します。
($('select')[0]?$('select')[0].type:"howdy")
存在する場合は型を返し、存在しない場合は「howdy」を返します。
$('select').prop('type');
DOM 内に最初のプロパティが存在する場合はそのプロパティを返し、存在しない場合は「undefined」を返します。
$('select').type
最初のものが存在する場合はその型を返し、存在しない場合はエラーを返します。