拿一张桌子排

时间:2013-10-23 20:07:17

标签: javascript jquery

我有一个每行都有一个单选按钮的表。

<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。 感谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这应该是你的jQuery:

$("input[type=radio]").click(function () {
    console.log($(this).val());
});

这应该是你的HTML:

<table id="t1">
    <tr>
        <td>
            <input type="radio" name="foo" value="1" />
        </td>
        <td>Data1</td>
        <td>Data11</td>
    </tr>
    <tr>
        <td>
            <input type="radio" name="foo" value="2" />
        </td>
        <td>Data2</td>
        <td>Data22</td>
    </tr>
</table>

<强> jsFiddle example

请注意,您也可以使用$("input[name=foo]")代替$("input[type=radio]")

答案 2 :(得分: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);
});

我假设您只需要“数据”字符串后面的整数,但是您可以只使用.html()获取TD元素的全部内容,并省略.substring(4)

fiddle

相关问题