Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用选中和未选中的属性处理2组单选按钮_Jquery - Fatal编程技术网

Jquery 使用选中和未选中的属性处理2组单选按钮

Jquery 使用选中和未选中的属性处理2组单选按钮,jquery,Jquery,我正在开发一个移动应用程序,jQuery中有一个click函数,它将一个类应用于一组单选按钮,并将该类从页面上的其他单选按钮中删除。我现在有了一个用例,其中有两组单选按钮,现在它将删除所有单选按钮,而不仅仅是当前组中的单选按钮 我已经在JSFIDLE上设置了一个演示,它有两组单选按钮,您可以看到它们是如何以某种方式连接在一起的,我希望保持它们的包容性。如果您有任何问题,请随时提问 这是jQuery代码,请查看JSFIDLE上的其余代码 $('.form-radios label').attr(

我正在开发一个移动应用程序,jQuery中有一个click函数,它将一个类应用于一组单选按钮,并将该类从页面上的其他单选按钮中删除。我现在有了一个用例,其中有两组单选按钮,现在它将删除所有单选按钮,而不仅仅是当前组中的单选按钮

我已经在JSFIDLE上设置了一个演示,它有两组单选按钮,您可以看到它们是如何以某种方式连接在一起的,我希望保持它们的包容性。如果您有任何问题,请随时提问

这是jQuery代码,请查看JSFIDLE上的其余代码

$('.form-radios label').attr('checked', 'unchecked');

$(".form-radios label").click(function(){
       $(this).attr('checked', 'checked').addClass('checked');
       $('label').not(this).removeClass('checked');
});​

只需查找最近的父元素,而不是到处搜索:

$('.form-radios label').click(function() {
       var $this = $(this);

       $this.next('input').prop('checked', 'checked'); // Took the liberty of fixing this up, too.
       $this.addClass('checked');
       $this.closest('.form-radios').find('label').not(this).removeClass('checked');
});​

只需查找最近的父元素,而不是到处搜索:

$('.form-radios label').click(function() {
       var $this = $(this);

       $this.next('input').prop('checked', 'checked'); // Took the liberty of fixing this up, too.
       $this.addClass('checked');
       $this.closest('.form-radios').find('label').not(this).removeClass('checked');
});​
同级
将仅获取共享同一父元素的元素

编辑:使用新结构:

$(".form-radios label").click(function(){
    var $this = $(this);

    $this.closest(".form-radios").find("label").removeClass('checked');
    $this.attr('checked', 'checked').addClass('checked');
});​

同级
将仅获取共享同一父元素的元素

编辑:使用新结构:

$(".form-radios label").click(function(){
    var $this = $(this);

    $this.closest(".form-radios").find("label").removeClass('checked');
    $this.attr('checked', 'checked').addClass('checked');
});​


我不太明白问题是什么?你能重新措辞/强调你的问题吗?你需要做的是,如果收音机是相关的,只对这些元素使用
name=“group[]”
和filter
class=checked
。我不太明白问题是什么?您可以重新表述/突出显示您的问题吗?您需要做的是,如果收音机是相关的,则仅对这些元素使用
name=“group[]”和filter
class=checked
。他还需要使用name属性对收音机进行分组。这不是仅适用于jQuery 1.6+?我在1.3上。2@jsheffers:否,1.3中添加了
.closest()
。()至于
prop
,只需将其更改为
attr
,就像您最初所做的那样-或升级:)+1,以捕获他在标签上而不是输入上进行的设置检查。我已经忽略了这一点。他还需要使用name属性对收音机进行分组。这不只是针对jQuery 1.6+的吗?我在1.3上。2@jsheffers:否,1.3中添加了
.closest()
。()至于
prop
,只需将其更改为
attr
,就像您最初所做的那样-或升级:)+1,以捕获他在标签上而不是输入上进行的设置检查。我已经忽略了这一点。我看到你的兄弟姐妹在一条新的线路上崩溃了。这样做的目的是什么?我看到这个示例在JSFIDLE中工作,但在我的用例中无法使它工作。基本上,它是在添加选中的类,但不会从其他类中删除它。这只是为了可读性。你真正的html结构与你发布的结构匹配吗?很抱歉,我遗漏了一个包含div。更新了html和你的JSF,这是一个很大的不同。使用@minitech的解决方案<代码>最近的
是使用该结构的方式。虽然我将使用
最近的
添加一个稍微不同的版本。可能是次要的,但颠倒您的操作顺序并避免调用
not
应该会稍微更有效率。将“this”移动到变量中的原因是什么?我看到您的兄弟姐妹在新行中被分解了。这样做的目的是什么?我看到这个示例在JSFIDLE中工作,但在我的用例中无法使它工作。基本上,它是在添加选中的类,但不会从其他类中删除它。这只是为了可读性。你真正的html结构与你发布的结构匹配吗?很抱歉,我遗漏了一个包含div。更新了html和你的JSF,这是一个很大的不同。使用@minitech的解决方案<代码>最近的是使用该结构的方式。虽然我将使用
最近的
添加一个稍微不同的版本。可能是次要的,但是颠倒你正在做的事情的顺序,避免调用
not
应该会稍微有效率一些。将“this”移动到变量中的原因是什么?