Как на джава скрипте проверить наличие класса?

  • 9 Ответов
  • 369 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Sergey2

  • Завсегдатай
  • *****
  • 655
  • 14
Продолжаем эпопею.
Вообщем есть корзина, плюсики и минусики управлением кол-ва товара, проверяется это количество на то, кратно оно трем или нет, если не кратно, выводиться сообщение что должно быть кратно, если нет, то сообщение не выводится. Помимо вывода сообщения в div блок добавляется еще один класс.
Теперь вопрос.
Как проверить в скрипте наличие этого класса? Делаю так:
Код
	var elem = document.querySelector("#Cart");

if (elem.classList.contains("kratno3_d")) {
$orderMessage.show().find(".message").html("Некоторые товары продаются по 3 штуки");
}
else {
// тут оформление заказа
        }
Код не работает - заказ всегда оформляется. Как исправить?

*

Septdir

  • Практически профи
  • *******
  • 2147
  • 108
  • JoomlaZen
Цитировать
Как проверить в скрипте наличие этого класса? Делаю так:
https://api.jquery.com/hasclass/
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

Sergey2

  • Завсегдатай
  • *****
  • 655
  • 14
так я тоже пробовал. Не получаеться. может проблема в том что у меня этот класс глубоко сидит, то есть не прямой потомок... или как его там обозвать.
Тоесть у меня как то так:
Код
<div id="cart">
  <div class="table">
    <div class="product">
         <div class="kratno_3"></div>
    </div>
  </div>
</div>

*

Septdir

  • Практически профи
  • *******
  • 2147
  • 108
  • JoomlaZen
Sergey2, надо видеть весь код скрипта, и сам сайт. Причн может быть куча от неправильно селектора или иветна, до просто го конфликта.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

umbabaraumba

  • Практически профи
  • *******
  • 2441
  • 152
  • если помог можете поставить +
Как то так, если я правильно понял вопрос
Спойлер
[свернуть]
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Если надо проверить наличие класса у первого вложенного блока:

https://jsfiddle.net/w5we048r/

Если надо вообще проверить есть ли вообще блоки с этим классом:

Код: javascript
if( $('#cart .table .product .kratno_3').length > 0 ) {
...
}
« Последнее редактирование: 15.06.2016, 17:53:02 от zomby6888 »
интернет-блог: http://websiteprog.ru

*

Sergey2

  • Завсегдатай
  • *****
  • 655
  • 14
Как то так, если я правильно понял вопрос
Спойлер
[свернуть]

Спасибо! Работает! :)

*

Sergey2

  • Завсегдатай
  • *****
  • 655
  • 14
Если надо проверить наличие класса у первого вложенного блока:

https://jsfiddle.net/w5we048r/

Если надо вообще проверить есть ли вообще блоки с этим классом:

Код: javascript
if( $('#cart .table .product .kratno_3').length > 0 ) {
...
}
Тут косяк в том что надо полностью эти все "пути" прописывать, а там вложенность эта элементов на 15...

*

zomby6888

  • Живу я здесь
  • ******
  • 1484
  • 167
Это как раз правильное решение. Совершенно не обязательно все пути прописывать. Учите как работают селекторы. Вариант который как бы вам подошел супер медленный так как он будет перебирать все блоки на странице и если где нибудь еще попадется блок с таким же классом результат будет положительным даже если его нет внутри нужных вам блоков . Вам это подходит - прекрасно. Остальным будет над чем подумать.
интернет-блог: http://websiteprog.ru

*

Sergey2

  • Завсегдатай
  • *****
  • 655
  • 14
Это как раз правильное решение. Совершенно не обязательно все пути прописывать. Учите как работают селекторы. Вариант который как бы вам подошел супер медленный так как он будет перебирать все блоки на странице и если где нибудь еще попадется блок с таким же классом результат будет положительным даже если его нет внутри нужных вам блоков . Вам это подходит - прекрасно. Остальным будет над чем подумать.
спасибо. Взял второй вариант :)