0

行ごとにラジオボタンがあるテーブルがあります。

<table id="t1">
 <tr><td><input type="radio" onclick="grab_row()" value=1></td><td>Data1<td>Data11</td></tr>
 <tr><td><input type="radio" onclick="grab_row()" value=2></td><td>Data2<td>Data22</td></tr></table>

無線で選択した行の値を取得する機能が欲しいです。

私の機能:

function grab_row () {
    var radio = $("input[name=t1]:checked").val();   
}

この関数は、現在選択されているラジオ ID のみを取得します。

たとえば、最初のラジオをクリックすると、Data1 と Data11 が返されます。ありがとう

4

3 に答える 3

0

これがあなたが探しているものの私の解釈です

html

<table>
<tr>
    <td>
        <input type="radio" value="1" name="myradio" />
    </td>
    <td>Data1</td>
    <td>Data11</td>
</tr>
<tr>
    <td>
        <input type="radio" value="2" name="myradio" />
    </td>
    <td>Data2</td>
    <td>Data22</td>
    <td>Data222</td>
</tr>

js

$("input:radio[name=myradio]").click(function () {
var myvals = [];
var elem = $(this).parent().next();

while (elem.prop("tagName") == "TD") {
    myvals.push(parseInt(elem.html().substring(4)));
    elem = elem.next();
}
console.log(myvals);
});

「Data」文字列の後に整数のみが必要であると想定しましたが、.html() だけで .substring(4) を省略して TD 要素のコンテンツ全体を取得できます。

フィドル

于 2013-10-23T20:46:24.407 に答える
0

.val()複数の要素を返すセレクタを使用しているときに使用すると、最初の要素の値のみが返されます。代わりに、 を使用してそれらを反復処理する必要があります.each()

var values = [];
$("input[name=t1]:checked").each(function(idx, val) {
   //spin through and collect each val
   values.push($(val).val());
})
console.log(values); //view values in console
于 2013-10-23T20:09:38.390 に答える