2015-04-06 4 views
2

Знаете ли вы, почему использование removeClass после hasClass дайте мне Uncaught TypeError: undefined is not a function?removeClass after hasClass не работает

В коде ниже, предупреждение не будет выполнен, так как код выше него выдает ошибку ..

$("input[type='button']").hasClass("scroll").removeClass("inactive"); 
 
alert("success");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Может кто-нибудь предоставить другой способ для достижения своей цели?

+3

hasclass() возвращает логическое, не JQuery объект – Tommi

+0

@Tommi почему бы не опубликовать ответ? –

ответ

6

JQuery hasClass возвращает логическое значение, которые не имеют removeClass метода. В вашем случае это гораздо лучше поставить селектор класса внутри $ вызова

$("input[type='button'].scroll").removeClass("inactive"); 
+0

Возьмите upvote. Это лучше, чем проверить и выполнить –

5

.hasClass проверка с условием, если он возвращает булево

if($("input[type='button']").hasClass("scroll")){ 
    $("input[type='button']").removeClass("inactive") 
} 
+0

Извините, но это не то же самое, что и оп. Он удалит «неактивный» класс со всех кнопок типа ввода, если ЛЮБОЙ из него имеет класс «прокрутка». Кроме того, это не оптимально, так как вы выполняете '$ (" input [type = 'button'] ")' поиск дважды. – Tommi

Смежные вопросы