jQueryの.each()ループで相対値を取得する際に問題が発生しました。テキスト入力とその横にラジオボタンがある一連のテーブル行があります。各行をループしたいのですが、ラジオボタンが選択されている場合は、テキスト入力の値を保存します。
ただし、これまでのところ、ループを実行するたびに、ラジオ値の1つが選択されていることを認識しているようで、どの行に関係なく、最初の入力が自動的に保存されます。各行を実行することで、コードはその特定の行のHTMLでのみ実行されると思いました。代わりに、すべての行に影響を与えていると思います。誰か助けてもらえますか?
これが私のjQueryです:
$('#valueTable tbody tr').each( function() {
//$(this).css('background', 'blue');
if($('td input[name=DefaultVal]:checked').size() > 0){
$('td input[name=DefaultVal]:checked').parent().css('background', 'red')
selectedDefVal = $('td:first-child input[name=valueTextField]').val();
//alert(selectedDefVal)
} else {
alert('not checked')
}
});
これが私のHTMLです:
<table border="0" id="valueTable">
<tr>
<td width="70%" style="white-space: nowrap;"><input size="80" type="text" name="valueTextField" placeholder="Enter Value" value="" ></td>
<td width="70%" class="default_container">Default
<input type="radio" name="DefaultVal" checked="true" class="defaultValFind" />
</td>
</tr>
<tr>
<td width="70%" style="white-space: nowrap;"><input size="80" type="text" name="valueTextField" placeholder="Enter Value" value="2" ></td>
<td width="70%" class="default_container">Default
<input type="radio" name="DefaultVal" class="defaultValFind" />
</td>
</tr>
<tr>
<td width="70%" style="white-space: nowrap;"><input size="80" type="text" name="valueTextField" placeholder="Enter Value" value="fffffff" ></td>
<td width="70%" class="default_container">Default
<input type="radio" name="DefaultVal" class="defaultValFind" />
</td>
</tr>
</table>