удалить атрибут отключить для всех элементов, кроме некоторых классов - PullRequest
1 голос
/ 08 февраля 2012

У меня есть это для того, чтобы заменить атрибут отключен на только чтение, и я хочу знать, возможно ли это сделать для некоторых классов. Я хочу добавить что-то вроде «если на входе нет действия класса x do»

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

Ответы [ 4 ]

3 голосов
/ 08 февраля 2012

Вы можете использовать метод not для исключения элементов из соответствующего набора:

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

В качестве альтернативы вы можете использовать псевдоселектор :not, но, как указано в документации, метод .not лучше "в большинстве случаев".

В качестве примечания, вы, вероятно, должны использовать метод prop вместо attr, так как disabled и readonly являются свойствами DOM.

1 голос
/ 08 февраля 2012
$('input[type=text][disabled="disabled"][class!="yourClass"]').removeAttr("disabled").attr("readonly", true);

Также должно работать

1 голос
/ 08 февраля 2012

Использование not () и prop () должно сделать это;

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

См. отключенный селектор , not () и prop () .

1 голос
/ 08 февраля 2012

Использовать :not(.x) псевдо-селектор.

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

Вы можете упростить это следующим образом.

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