删除除某些类之外的所有元素的属性禁用

时间:2012-02-08 16:17:02

标签: jquery readonly apply

我有这个是为了用readonly替换属性disabled,我想知道是否有可能不对某些类执行此操作。我想添加类似“如果输入没有类x执行动作”的内容

$('input[type=text][disabled="disabled"]').removeAttr("disabled").attr("readonly", true);

4 个答案:

答案 0 :(得分:3)

您可以使用not方法从匹配的集合中排除元素:

$('input[type=text][disabled="disabled"]').not(".someClass").removeAttr("disabled").attr("readonly", true);

或者,您可以使用:not伪选择器,但正如文档所述,.not方法在大多数情况下更好“。

作为旁注,您应该使用prop方法而不是attr,因为disabledreadonly都是DOM属性。

答案 1 :(得分:1)

使用:not(.x)伪选择器。

$('input[type=text][disabled="disabled"]:not(.x)')
.removeAttr("disabled").attr("readonly", true);

您可以像这样简化它。

$('input:text:disabled:not(.x)')
.removeAttr("disabled").attr("readonly", true);

答案 2 :(得分:1)

使用not()和prop()应该这样做;

$('input[type="text"]:disabled').not('.className')
    .prop('disabled', false).prop('readonly', true);

请参阅disabled selectornot()prop()

答案 3 :(得分:1)

$('input[type=text][disabled="disabled"][class!="yourClass"]').removeAttr("disabled").attr("readonly", true);

也应该有用