Могу ли я сделать оператор «если» в jQuery для проверки класса из одного набора И класса из другого? - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь создать оператор if в jQuery, чтобы проверить, есть ли у элемента один (или более) из списка классов И один (или более) из другого списка классов. Кажется, у меня нет успеха. Мой код, который я создал до сих пор:

if ( $("#jacket_text").is(".color-white,.color-black,.color-silver") 
&& $("#jacket_text").is(".font-block,.font-script,.font-space") ) {

}
else {
}

Могу ли я что-нибудь сделать для этой работы?

Любая помощь с благодарностью! Спасибо!

**** РЕДАКТИРОВАТЬ ****

Вот jsFiddle большего количества кода, который я использую: https://jsfiddle.net/4wajbutx/

Извините, если это немного сложно, я хотел включить как можно больше, чтобы убедиться, что любая из моих ошибок может быть замечена, если есть какие-либо вызывающие проблемы.

Смысл моего кода здесь в том, что определенные цвета (такие как белый и черный) НЕ должны быть доступны, когда кто-то нажимает опцию «неоновый» шрифт. Мне удалось справиться с этим - он отменял выбор этих цветов и выбирал «синий», когда они нажимали «неон». Проблема в том, что если они уже выбрали «неоновый» и, скажем, цвет «розовый», если они снова нажимают «неоновый» (возможно, случайно), то он меняет свой выбор цвета на «синий». Но это должно произойти ТОЛЬКО, если у них выбран другой параметр шрифта И выбран неверный параметр цвета.

Ух ты, я надеюсь, это имеет смысл для кого-то.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Ваш код в порядке - он работает как задумано. У вас есть маленький пример ниже, как это работает. Этот поток также должен вам помочь: JQuery .hasClass для нескольких значений в операторе if

$(document).ready(function() {
  if ($("#a").is(".one,.two,.three") && $("#a").is(".small-font,.triangle")) {
    $('#a').addClass('selected');
  }
  
   if ($("#b").is(".five,.six") && $("#b").is(".square")) {
    $('#b').addClass('selected');
  }
  
   if ($("#c").is(".nine,.ten") && $("#c").is(".i-dont-know-that-class-name")) {
    $('#c').addClass('selected');
  }
});
div{
  display:inline-block;
  width:100px;
  height:100px;
  margin-right:5px;
  opacity:0.1;
  color:#fff;
  text-align:center;
  line-height:100px;
  font-family:sans-serif;
  text-transform:uppercase;
  border:3px dotted transparent;
}
#a{background-color:orange;}
#b{background-color:green;}
#c{background-color:blue;}

.selected{
  opacity:1 !important;
  border-color:red !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="a" class="one two three four small-font triangle">Triangle</div>
<div id="b" class="five six seven eight  medium-font square">Square</div>
<div id="c" class="nine ten eleven  big-font circle">Circle</div>
0 голосов
/ 26 апреля 2019

Время бежать из страны, я обнаружил свою глупую ошибку.

Я удалял те классы, которые искал мой оператор "if", ДО того, как произошел оператор "if", поэтому, конечно, он не мог их найти и не работал.

Теперь я ставлю эту строку после оператора if, и она работает как положено.

Спасибо, ребята, надеюсь, я не тратил впустую слишком много времени!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...