Форум русской поддержки Joomla!® CMS
10.12.2016, 07:05:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 202 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« : 15.06.2016, 14:13:02 »

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

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

Репутация: +36/-3
Offline Offline

Пол: Мужской
Сообщений: 841


Skype: septdir


« Ответ #1 : 15.06.2016, 15:04:19 »

Цитировать
Как проверить в скрипте наличие этого класса? Делаю так:
https://api.jquery.com/hasclass/
Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #2 : 15.06.2016, 15:32:54 »

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

Репутация: +36/-3
Offline Offline

Пол: Мужской
Сообщений: 841


Skype: septdir


« Ответ #3 : 15.06.2016, 16:05:59 »

Sergey2, надо видеть весь код скрипта, и сам сайт. Причн может быть куча от неправильно селектора или иветна, до просто го конфликта.
Записан
umbabaraumba
Практически профи
*******

Репутация: +153/-1
Offline Offline

Пол: Мужской
Сообщений: 2558

если помог можете поставить +


« Ответ #4 : 15.06.2016, 16:32:15 »

Как то так, если я правильно понял вопрос
Показать текстовый блок
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #5 : 15.06.2016, 16:36:30 »

Если надо проверить наличие класса у первого вложенного блока:

https://jsfiddle.net/w5we048r/

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

Код
if( $('#cart .table .product .kratno_3').length > 0 ) {
...
}
 
« Последнее редактирование: 15.06.2016, 16:53:02 от zomby6888 » Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #6 : 15.06.2016, 19:54:54 »

Как то так, если я правильно понял вопрос
Показать текстовый блок

Спасибо! Работает! Azn
Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #7 : 15.06.2016, 19:57:25 »

Если надо проверить наличие класса у первого вложенного блока:

https://jsfiddle.net/w5we048r/

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

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

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #8 : 15.06.2016, 20:02:23 »

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

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #9 : 15.06.2016, 20:25:26 »

Это как раз правильное решение. Совершенно не обязательно все пути прописывать. Учите как работают селекторы. Вариант который как бы вам подошел супер медленный так как он будет перебирать все блоки на странице и если где нибудь еще попадется блок с таким же классом результат будет положительным даже если его нет внутри нужных вам блоков . Вам это подходит - прекрасно. Остальным будет над чем подумать.
спасибо. Взял второй вариант Azn
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet