Как рандомизировать имена .class внутри .hasclass () в jquery

У меня есть такой код:

$(".user-items").each(function() {
  if ($(this).hasClass("don't know the code yet")) {
    $(this).fadeIn();
  } else {
    $(this).fadeOut();
  }
});

но я хотел, чтобы это работало так:

$(".user-items").each(function() {
  if ($(this).hasClass(".people OR .photos OR .videos")) {
    $(this).fadeIn();
  } else {
    $(this).fadeOut();
  }
});

Я хотел рандомизировать 3 класса в каждом цикле .each() и сделать все совпадающие элементы fadeIn / fadeOut

Примечание *: «ИЛИ» внутри .hasClass - это просто интерпретация того, как я хотел, чтобы это работало.

<a href="javascript:void(0);" class="user-items people">People</a>

<a href="javascript:void(0);" class="user-items photos">Photo</a>

<a href="javascript:void(0);" class="user-items videos">Videos</a>
...
...
...
lots of more .user-items classes with 3 given classes: .people, .photos, .videos

Спасибо

Не помещайте свою логику OR внутрь hasClass, просто сделайте несколько hasClass() и поместите OR между ними. var $t = $(this); if ($t.hasClass("People") || $t.hasClass("Photos") || $t.hasClass("Videos")) Хотя я не совсем понимаю, где здесь играет роль "случайность".

Tyler Roper 13.09.2018 18:24

Вы спрашиваете, как выбрать случайное слово (название класса) из списка слов?

freedomn-m 13.09.2018 18:30

См. Мою правку выше. Спасибо ! @ freedomn-m Нет, я хотел выбрать случайные имена .class

Mark Salvania 13.09.2018 18:43

@TylerRoper Извините, если я вас запутал. Это была только интерпретация того, как я хотел, чтобы он работал внутри этого .hasClass (). См. Мою правку выше. Спасибо.

Mark Salvania 13.09.2018 18:44
4
4
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать массив классов, а затем метод random(), чтобы каждый раз получать случайный класс, например:

var classes = ['photos', 'videos', 'people'];

$(".user-items").each(function() {
  var random_class = classes[Math.floor((Math.random() * classes.length) + 0)];

  console.log(random_class);

  if ($(this).hasClass(random_class)) {
    $(this).fadeIn();
  } else {
    $(this).fadeOut();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="javascript:void(0);" class="user-items people">People</a>
<br>
<a href="javascript:void(0);" class="user-items photos">Photo</a>
<br>
<a href="javascript:void(0);" class="user-items videos">Videos</a>

Не могли бы вы добавить свою HTML-структуру.

Zakaria Acharki 13.09.2018 18:53

Проверить мои обновления ... мало что дает, но может помочь.

Zakaria Acharki 13.09.2018 18:56

Отлично, рад, что смог помочь брату.

Zakaria Acharki 13.09.2018 19:04

Другие вопросы по теме