Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 ui jQuery添加/删除选定收音机上的css类_Jquery Ui - Fatal编程技术网

Jquery ui jQuery添加/删除选定收音机上的css类

Jquery ui jQuery添加/删除选定收音机上的css类,jquery-ui,Jquery Ui,我在这里读了一些解决方案,但我的问题在那些不起作用的地方差别很大。基本上,如果选中单选按钮,则向父div添加css类。如果未选中单选按钮,则删除css类。听起来很简单 我有多个单选按钮组,所以换句话说,一次将选择多个单选按钮。每个单选按钮组也位于页面的不同部分,由其他html分隔 以下是我的想法: $(document).ready(function () { $('input').click(function () { if ($('input:not(:check

我在这里读了一些解决方案,但我的问题在那些不起作用的地方差别很大。基本上,如果选中单选按钮,则向父div添加css类。如果未选中单选按钮,则删除css类。听起来很简单

我有多个单选按钮组,所以换句话说,一次将选择多个单选按钮。每个单选按钮组也位于页面的不同部分,由其他html分隔

以下是我的想法:

  $(document).ready(function () {
    $('input').click(function () {
        if ($('input:not(:checked)')) {
            $('div').removeClass('style1');
        }
        if ($('input').is(':checked')) {
            $(this).parent().addClass('style1');
        }


    });
});
我认为输入:not(:checked)的路径是正确的,但在下一行,它将从所有div元素中删除style1,而不是检查是否选中了其他divs单选按钮子项

我想我要问的是,如何编写一个脚本,当单击单选按钮时,向父级添加一个css类,然后在页面上找到所有具有子级输入的div标记。如果未选中divs子输入,请删除css类。因此,如果一个div有一个子input元素并选中了它,那么不要从inputs div中删除css类


我希望这是有意义的。

假设您的单选按钮使用
name
属性对它们进行正确分组,当其中一个发生更改时,您可以找到具有相同名称的收音机,删除该类,然后将该类添加到已激活的收音机中

试试看:


为什么不使用以下选项:


我也有类似的问题,但我需要针对单选按钮的
标签
,而不是父
div
元素。我还需要确保其他相关的
标签
元素没有类

以下是我根据@user113716的答案得出的结论:

HTML

MVC代码已删除,因此本示例中只有HTML


JavaScript

'use strict';
var o = 'label.input-check, label.input-radio';
$(o).find('input').change(function () {
    $(o).find('input').filter('input[name="' + (this).name + '"]').each(function () {
        $(this).parent(o).toggleClass('checked', (this).checked);
    });
}).trigger('change');
演示:


如果需要的话,只需进行优化。

一年后。。它仍然帮助某些人工作正常,但代码中似乎有非法字符。它很容易用提琴(红色标记)删除:当页面刷新时,即使选项仍处于选中状态,类也会丢失。顺便说一句:如果它对任何人都有帮助:我在输入字段本身(在父字段中)上使用了
不透明度:0
因此,我可以使用背景图像作为检查状态。仅供参考,如果我直接复制,我的编辑器会出错。如果我复制/粘贴到此网站。我可以看到最后一个分号后面有一个红点。但是我在我的编辑器中看不到这个角色。
$(document).ready(function () {
    $('input').click(function () {
        $('input:not(:checked)').parent().removeClass("style1");
        $('input:checked').parent().addClass("style1");
    });    
});​
<ol class="list-group">
    <li class="list-group-item">
        <div class="input-group">
            <label for="choice_ChoiceId" class="form-control">ChoiceDescription</label>
            <span class="input-group-addon">
                <input type="radio" id="choice_ChoiceId" value="choiceValue" name="choiceName" required />
            </span>
        </div>
    </li>
</ol>
$(':radio').click(function () {
    var _groupName = $(this).attr('name'),
        _radioId = $(this).attr('id'),
        _radioGroup = $(':radio[name="' + _groupName + '"]');

    //remove class from all labels for this group of radio buttons
    _radioGroup.each(function(){
        $('label[for*="' + $(this).attr('id') + '"]').removeClass('style1');
    });

    //add the class to the selected radio button
    $('label[for*="' + _radioId + '"]').addClass('style1');
});
'use strict';
var o = 'label.input-check, label.input-radio';
$(o).find('input').change(function () {
    $(o).find('input').filter('input[name="' + (this).name + '"]').each(function () {
        $(this).parent(o).toggleClass('checked', (this).checked);
    });
}).trigger('change');