0

这是html的标记

<input type="checkbox" title="enable" value="30"/>
<input type="checkbox" title="enable" value="31"/>
<input type="checkbox" title="disable" value="32"/>
<input type="checkbox" title="disable" value="33"/>
<input type="checkbox" title="disable" value="34"/>
<a class="testdisable" id="testhere">TESTCLASS</a>

现在,如果选中的任何一个复选框被禁用,我希望应用禁用类。如果选择了两个启用复选框,那么我希望在锚点上应用禁用类。如果选择了两个禁用复选框,那么我希望应用启用类在锚标签上。我在jquery代码下面尝试了..但没有得到正确的结果..我遇到了两个禁用和两个禁用和一个启用的问题

我的 JS 小提琴:- http://jsfiddle.net/TpBGG/1/

4

2 回答 2

1

可以试试这个

function changeclass() { if ($('input:checked[title="disable"]').length >= 1 && $('input:checked[title="enable"]').length >= 1) { $('a[name=enable_anchor]').attr('class', 'testdisable'); } else if ($('input:checked[title="enable"]').length >= 1) { $('a[name=enable_anchor]').attr('class', 'testdisable'); } else if ($('input:checked[title="disable"]').length >= 1) { $('a[name=enable_anchor]').attr('class', 'testenable'); } //else { // $('a[name=enable_anchor]').attr('class', 'testdisable'); //} }
于 2013-05-01T07:38:17.497 回答
0

这应该可以解决您的问题:

    function changeclass() {
alert('before' + $('#testhere').attr('class'));
if ($('input:checked[title="disable"]').length == 1) {
    $('#testhere').attr('class', 'disable');
}
else if (($('input:checked[title="disable"]').length > 1) && ($('input:checked[title="enable"]').length == 1))
{
    $('#testhere').attr('class', 'disable');
}
else if ($('input:checked[title="enable"]').length > 1) {
    $('#testhere').attr('class', 'disable');
}
else {
    $('#testhere').attr('class', 'enable');
}
alert('after' + $('#testhere').attr('class'));}
于 2013-05-01T05:58:40.123 回答