как управлять сложением и вычитанием в jquery?

#javascript #jquery

#javascript #jquery

Вопрос:

Я пытаюсь подсчитать количество нажатий по кнопке, и я хочу добавить оператор if else, если .kisi-sayi-text значение равно = 0, не добавляйте, но в моем коде ничего не произошло

HTML

 <div class="count-box yetiskin-count">
        <span class="count-text">Yetişkin:</span>
        <span class="kisi-down"></span>
        <span class="kisi-sayi-text">1</span>
        <span class="kisi-up"></span>
    </div>
  

JQUERY

 $('.yetiskin-count > .kisi-up').on("click",function(){
  var topParents = $(this).parents(".yetiskin-count"),
      kisiSayiText   = topParents.find(".kisi-sayi-text"),
      kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);

     if(kisiSayiNumber<0){
        return false;
     }
});
  

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

1. Используйте этот простой код jsfiddle.net/8wss6b58

Ответ №1:

Проблема, с которой вы столкнулись, заключается не в .kisi-up событии щелчка, вам следует посмотреть на обработчик .kisi-down щелчка, поскольку он обрабатывает вычитание, поэтому он прекратит вычитание, когда достигнет 0.

 $('.yetiskin-count > .kisi-up').on("click",function(){
     var topParents = $(this).parents(".yetiskin-count"),
       kisiSayiText = topParents.find(".kisi-sayi-text"),
       kisiSayiNumber = parseInt($(".kisi-sayi-text").html());
     kisiSayiText.html(kisiSayiNumber   1);
});

$('.yetiskin-count > .kisi-down').on("click",function(){
     var topParents = $(this).parents(".yetiskin-count"),
       kisiSayiText = topParents.find(".kisi-sayi-text"),
       kisiSayiNumber = parseInt($(".kisi-sayi-text").html());
     if(kisiSayiNumber <= 0){
        return false;
     }
     kisiSayiText.html(kisiSayiNumber - 1);
});  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
        <span class="count-text">Yetişkin:</span>
        <span class="kisi-down">amp;<</span>
        <span class="kisi-sayi-text">1</span>
        <span class="kisi-up">amp;></span>
    </div>  

Сравните это:

 $('.yetiskin-count > .kisi-up').on("click",function(){
  var topParents = $(this).parents(".yetiskin-count"),
      kisiSayiText   = topParents.find(".kisi-sayi-text"),
      kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);

     // kisiSayiNumber is a jQuery object, not a number so there is no point comparing it with 0
     if(kisiSayiNumber<0){
        return false;
     }
});
  

с помощью этого:

 $('.yetiskin-count > .kisi-up').on("click",function(){
  var topParents = $(this).parents(".yetiskin-count"),
      kisiSayiText = topParents.find(".kisi-sayi-text"),
      kisiSayiNumber = parseInt(kisiSayiText.html());

      // if the current running number is less than or equal to 0 then don't add
      if (kisiSayiNumber <= 0)
          return false;
      kisiSayiText.html(kisiSayiNumber   1);
});
  

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

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

2. извините, но вы должны уточнить, каков ваш ожидаемый результат, например, это число только от 0 до положительной бесконечности?

3. нет, я имею в виду, что если я хочу сложения, оно должно быть добавлено, если я хочу вычитания, оно должно быть увеличено до 0

4. Я добавил фрагмент кода, который может быть тем, что вы собираетесь делать

Ответ №2:

Пожалуйста, замените эту строку

 kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
  

с помощью

 kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").text()) 1);
  

и я начну сложение так, как вы хотите

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

1. Хотя технически это лучше, это не повлияет на результат и не повлияет на то, что хочет сделать OP

2. Сначала его синтаксис исправляется, и я публикую полный ответ, хотя

Ответ №3:

Проблема в вашем <span class="kisi-up"></span> .. Попробуйте поместить некоторые данные.

Например

<span class="kisi-up">Click Me</span>

Потому что вы не можете щелкнуть интервал kisi-up

  $('.yetiskin-count > .kisi-up').on("click",function(){
  var topParents = $(this).parents(".yetiskin-count"),
      kisiSayiText   = topParents.find(".kisi-sayi-text"),
      kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);

     if(kisiSayiNumber<0){
        return false;
     }
});  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
        <span class="count-text">Yetişkin:</span>
        <span class="kisi-down"></span>
        <span class="kisi-sayi-text">1</span>
        <span class="kisi-up">Click Me</span>
    </div>  

Ответ №4:

   $('.yetiskin-count > .kisi-up').on("click",function(){
  
  var topParents = $(this).parents(".yetiskin-count");
    var  kisiSayiText   = topParents.find(".kisi-sayi-text");
      if($(".kisi-sayi-text").html()<=0){
        return false;
     };
      kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);

     
});  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
        <span class="count-text">Yetişkin:</span>
        <span class="kisi-down"></span>
        <span class="kisi-sayi-text">1</span>
        <span class="kisi-up">click here</span>
    </div>  

привет, вам нужно иметь некоторый контент в теге span, на который нужно нажать, и убедиться, что вы включили библиотеку jQuery. вы можете запустить фрагмент для проверки функциональности. я надеюсь, что это решит вашу проблему. счастливого кодирования!!!

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

1. этот код работает при условии меньше или равно нулю