Jquery Помогите с методами find/removeClass/addClass

Focus

Новичок
Хочу поменять класс у элементов. Есть такой хтмл код:
PHP:
<div id="item-1">
  <span class="status text-success">Ok</div><a href="#" id="active" data-value="1">Doit</a>
</div>
<div id="item-2">
  <span class="status text-success">Ok</div><a href="#" id="active" data-value="2">Doit</a>
</div>
<div id="item-3">
  <span class="status text-success">Ok</div><a href="#" id="active" data-value="3">Doit</a>
</div>
<script language="javascript">
  $form.on('click', '#active', function(e){
  var value = $(this).data('value');
  $status = $form.find("#item-"+value+" .status");
  $status.removeClass(".text-success");
  $status.addClass(".text-warning");
});   
</script>
Почему-то не удаляются/добавляются классы. Подскажите что не так делаю?
 

Focus

Новичок
выше в коде идет $form = $('#j-my-items-form'); и в хтмл-е
<form id="j-my-items-form">
 

Adelf

Administrator
Команда форума
Все <a href="#" id="active" data-value="3">

замени на

<a href="#" class="clickDoIt" data-value="3">

И делай
$('#j-my-items-form .clickDoIt').on('click', function(e){
var value = $(this).data('value');
$status = $form.find("#item-"+value+" .status");
$status.removeClass(".text-success");
$status.addClass(".text-warning");

return false; // старайся не забывать возвращать такое, если перекрываешь онклик ссылки
});
 

Focus

Новичок
поменял как вы написали - все-равно не работает..
Ошибок во время исполнения тоже нет(смотрю с пом. firebug)
 

Focus

Новичок
Заработало так:
вместо:
PHP:
$status.removeClass(".text-success");
$status.addClass(".text-warning");
написал:
PHP:
$status.removeClass("text-success");
$status.addClass("text-warning");
Странно, разве должно быть без точки?
 

Adelf

Administrator
Команда форума
Чот точку я даже не увидел. Да должно быть без точки. С точкой оно только в CSS-селекторах. Как здесь - $('#j-my-items-form .clickDoIt')
 

AnrDaemon

Продвинутый новичок
Все <a href="#" id="active" data-value="3">

замени на

<a href="#" class="clickDoIt" data-value="3">

И делай
$('#j-my-items-form .clickDoIt').on('click', function(e){
var value = $(this).data('value');
$status = $form.find("#item-"+value+" .status");
$status.removeClass(".text-success");
$status.addClass(".text-warning");

return false; // старайся не забывать возвращать такое, если перекрываешь онклик ссылки
});
Не проще убрать "href="#" " ?…
 

WMix

герр M:)ller
Партнер клуба
Я вот наоборот туда пишу адрес, а после js вытягиваю. Не современный подход с точки зрения js, но не могу себя перевернуть вырубить html без js поддержки
 

Adelf

Administrator
Команда форума
@AnrDaemon, да я б вообще все поменял :)
Я только что с проекта с Vue.js(аналог React). Такая красота там.
 

AnrDaemon

Продвинутый новичок
Я вот наоборот туда пишу адрес, а после js вытягиваю. Не современный подход с точки зрения js, но не могу себя перевернуть вырубить html без js поддержки
А не надо переворачивать. Сайт должен работать, включён JS или нет.
 

Adelf

Administrator
Команда форума
+1. Странных людей с выключенным js осталось меньше чем амурских тигров.
 

Вурдалак

Продвинутый новичок
А не надо переворачивать. Сайт должен работать, включён JS или нет.
Очень громкое и безосновательное утверждение. Никто никому ничего не должен, всё решает бизнес. Если бизнес понимает, что поддержка работоспособности сайта без JS обходится дороже, чем эти самые «странные» пользователи приносят, то логично просто отказаться от этой поддержки.
 
Сверху