Jquery 从父类中删除类<;td>;未选择单选按钮的列表
我想做的是能够突出显示所选单选按钮的父项,我已经这样做了。我遇到的问题是从未选择的收音机中删除.sel类。我将有多个无线电组设置在一个表中,每行一组 以下是我目前的代码:Jquery 从父类中删除类<;td>;未选择单选按钮的列表,jquery,html,css,Jquery,Html,Css,我想做的是能够突出显示所选单选按钮的父项,我已经这样做了。我遇到的问题是从未选择的收音机中删除.sel类。我将有多个无线电组设置在一个表中,每行一组 以下是我目前的代码: $(document).ready(function () { $('td.radio').click(function () { $(this).children('input').prop('checked', true); if ($(this).children('input').is(':check
$(document).ready(function () {
$('td.radio').click(function () {
$(this).children('input').prop('checked', true);
if ($(this).children('input').is(':checked')) {
$(this).addClass('sel');
} else {
$(this).removeClass('sel');
}
});
});
我在这里设置了一个JSFIDLE,其中包含我迄今为止管理的内容:从单击的td的所有同级中删除sel类,然后将其添加到单击的td中:
$('td.radio').click(function () {
var $this = $(this);
$this.children('input').prop('checked', true);
$this.siblings('td').removeClass('sel');
$this.addClass('sel');
});
我建议:
$('td.radio').removeClass('sel').filter(function(){
return $(this).find('input:checked').length;
}).addClass('sel');
(请注意,页面加载时默认选中了两个radio
元素)
对于更动态的方法(出于某种原因,我最初假设这是一个页面加载事件),请使用:
在JSFIDLE上测试了这一点。它仅从单击的行中删除高亮显示
$(document).ready(function () {
$('td.radio').click(function () {
$(this).parent().children().each(function(){
$(this).prop('checked', false);
$(this).removeClass('sel');
});
$(this).children('input').prop('checked', true);
$(this).addClass('sel');
});
});
$(this).parent().addClass('sel');
编辑--
不确定这是您要找的,但由于有多行,似乎这就是您要找的
编辑2--
修复了一些格式问题为了使代码更符合逻辑,我会做一些稍微不同的事情
但首先,这里有一个小提琴演示(感谢您提供了一个!)
这里有一个解释:
与其检查
元素(标记为.radio)上的单击,不如检查实际表单元素上的单击
$('input[type="radio"]').click(function(){
// ...
}
由于单选按钮按元素名称分组,因此请获取单击的单选按钮的元素名称,以便您可以将该组作为目标
var name = $(this).attr('name');
在无线电组方便的情况下,只需循环遍历每个元素并删除该类
$('input[name="'+name+'"]').each(function(){
$(this).parent().removeClass('sel');
});
注意:我更喜欢这种方法,因为它不会强制您取消设置/重置所有项目,只设置组中的项目。这有助于节省一些额外的检查项目,我们不需要处理
由于我们将代码更改为在单击给定的单选按钮时触发,因此我们可以简单地将该类添加回单击的按钮
$(document).ready(function () {
$('td.radio').click(function () {
$(this).parent().children().each(function(){
$(this).prop('checked', false);
$(this).removeClass('sel');
});
$(this).children('input').prop('checked', true);
$(this).addClass('sel');
});
});
$(this).parent().addClass('sel');
我希望这有帮助 小提琴似乎没有做任何事情,没有删除红色,也没有添加红色抱歉应该让它更清楚,需要通过单击其父项(如上所述)来选择收音机。这看起来很正确,在某一点上接近了这一点,尽管我以前没有遇到过.sibbins选择器。谢谢你,伙计!没问题。该文档非常有用且易于使用。这类事情正在进行中: