Проверьте, существует ли класс

#javascript #jquery #reactjs

#javascript #jquery ( jquery ) #reactjs

Вопрос:

Может кто-нибудь сказать мне, что я делаю не так? Я создаю класс — скидку, и если этот класс существует, я хочу создать элемент ниже.

 if (isRangeWithinRange(valueRange, dateRange)) {
  classes.push('discount');
} else if ($(".discount")[0]) {
  React.createElement('div');
}
 

Я создал класс «скидка», и теперь я хочу получить что-то подобное внутри кнопки, если класс «скидка» существует:

 <button class="discount">
  <div></div>
</button>
 

Мой HTML-код выглядит следующим образом

 <button class="react-calendar__tile react-calendar__tile--active discount react-calendar__tile--range react-calendar__month-view__days__day" 
type="button" style="flex-basis: 14.2857%; max-width: 14.2857%; overflow: hidden;">
  <abbr aria-label="30 grudnia 2020">30</abbr>
</button>
 

Комментарии:

1. Где это classes объявлено? Это выглядит как простой массив.

2. классы @terrymorse объявляются с именем класса: var classes = [className];

3. className является строкой. Я не понимаю, как добавление к массиву, содержащему className строку, изменит className . Это какая-то магия реакции?

4. "".concat('discount') почему…..

5. jQuery с реакцией ….. почему?

Ответ №1:

Если вы хотите добавить a <div> к каждому .discount элементу, вы можете использовать это:

 if ($(".discount").length > 0){
    $(".discount").append('<div></div>')
}
 

Комментарии:

1. if ($(".discount").length>0)

2. @Isman F. он генерирует бесконечное количество divs

3. Я не могу воспроизвести это, вот скрипка: jsfiddle.net/ojf245aL