提问人:bv8z 提问时间:10/17/2008 最后编辑:Priyangabv8z 更新时间:10/18/2019 访问量:39525
jQuery 多个单选按钮
jQuery multiple radio buttons
问:
不熟悉javascript / jquery,并且很难使用或获取当前对象。this
$(this)
我有一个表,每行都有一组,每个都命名为 .默认情况下,不选中任何单选按钮:radio buttons
s_<rowindex>
<tr>
<td align="left" style="width: 300px">
<div id="div_s_0">
<input type="radio" name="s_0" value="1" />Public
<input type="radio" name="s_0" value="2" />Not Public
<input type="radio" name="s_0" value="3" />Confidential
</div>
</td>
</tr>
<tr>
<td align="left" style="width: 300px">
<div id="div_s_1">
<input type="radio" name="s_1" value="1" />Public
<input type="radio" name="s_1" value="2" />Not Public
<input type="radio" name="s_1" value="3" />Confidential
</div>
</td>
</tr>
我正在尝试编写一个jQuery函数,以便在用户选择单选按钮时向表中添加一个新行,但前提是他们当前位于表的最后一行。我想做的是获取单击的单选按钮的 name 属性,解析它以获取行索引(即“_”后面的部分),并将其与表中的行数进行比较。如果它们相等,则添加新行,否则不执行任何操作。
我的问题是双重的,取决于我应该如何解决这个问题:
1) 如何返回单选按钮的 name 属性,或者 2) 如何返回我当前所在行的行索引?
答:
0赞
MDCore
10/17/2008
#1
以下是一些未经测试的代码,在我的脑海中:
$("#div_s_0 input[type='radio']").onclick = function() {
if ($("#div_s_0 input[type='radio']:last").attr('checked') == 'checked') {
/* add a new element */
}
}
这样做的目的是将 onclick 事件附加到 div 中的每个单选按钮。onclick 将检查该组中的最后一个单选按钮是否被选中,如果是,则添加另一个元素。
就像我说的,它还没有经过测试。我不确定选择器(#),所以先在Firebug中运行它。div_s_0 ... :last
5赞
Ryan Duffield
10/17/2008
#2
这将使用您提供的 HTML 获得索引:
$(document).ready(function() {
$("input:radio").click(function() {
var index = parseInt(this.name.split('_')[1])
});
});
另一件可能对您有帮助的事情:检索表中的行数:
$($("table").children()[0]).children().length
希望这对你有所帮助。
2赞
Pseudo Masochist
10/17/2008
#3
对于您的具体问题 1 和 2,如果您为表指定了 “mytable” 的 ID,则此示例应为您提供所需的内容:
var rowIndex = $("#mytable tr").index($(this).parents("tr"));
var inputName = $(this).attr("name");
alert("Input Name: " + inputName + "; RowIndex: " + rowIndex);
评论