我有一个 jQuery 脚本,它可以在 html 中找到所有input type=radio
内容并在它们上附加一些精美的 css。问题是我希望某些单选按钮保持不变。这是jQuery:
$(this).each(function (i) {
if ($(this).is('[type=checkbox],[type=radio]')) {
var input = $(this);
var label = $('label[for=' + input.attr('id') + ']');
var inputType = (input.is('[type=checkbox]')) ? 'checkbox' : 'radio';
$('<div class="custom-' + inputType + '"></div>').insertBefore(input).append(input, label);
var allInputs = $('input[name=' + input.attr('name') + ']');
label.hover(
function () {
$(this).addClass('hover');
if (inputType == 'checkbox' && input.is(':checked')) {
$(this).addClass('checkedHover');
}
},
function () {
$(this).removeClass('hover checkedHover');
});
input.bind('updateState', function () {
if (input.is(':checked')) {
if (input.is(':radio')) {
allInputs.each(function () {
$('label[for=' + $(this).attr('id') + ']').removeClass('checked');
});
};
label.addClass('checked');
} else {
label.removeClass('checked checkedHover checkedFocus');
}
})
.trigger('updateState')
.click(function () {
$(this).trigger('updateState');
})
.focus(function () {
label.addClass('focus');
if (inputType == 'checkbox' && input.is(':checked')) {
$(this).addClass('checkedFocus');
}
})
.blur(function () {
label.removeClass('focus checkedFocus');
});
}
});
这工作正常,但它会改变页面上的所有单选按钮。我想添加一些需要更改的单选按钮。我希望这个 html 代码中的单选按钮不受上面脚本的影响:
<p class="field switch">
<input type="radio" id="radioZ1" name="field1" checked />
<input type="radio" id="radioZ2" name="field2" />
<label for="radioZ1" class="cb-enable selected"><span>Enable</span>
</label>
<label for="radioZ2" class="cb-disable"><span>Disable</span>
</label>
</p>
所以我试图在.not()
之后添加,.is()
但我没有运气。有人可以帮我吗?