2016-08-07 18 views
0

この数値を計算するにはどうすればいいですか?最初の列の結果が1つのフィールド(counter-one)と2番目の列(300 + 800)他の(カウンター2)。結果JavaScriptを使ってチェックボックスの数を計算する方法

<tr> 
    <td><span class="cost">400</span>&nbsp;грн.</td> 
    <td><span class="cost">300</span>&nbsp;грн./месяц</td> 
    <td> 
     <label class="switch"> 
      <input type="checkbox" id="cost-one"> 
      <div class="slider round"></div> 
     </label> 
    </td> 
</tr> 
<tr> 
     <td><span class="cost">700</span>&nbsp;грн.</td> 
     <td><span class="cost">800</span>&nbsp;грн./месяц</td> 
     <td> 
      <label class="switch"> 
       <input type="checkbox" id="cost-two> 
       <div class="slider round"></div> 
      </label> 
     </td> 
    </tr> 

HTML:

<div class="counter-wrapper"> 
            <div class="install"> 
             <p class="counter-head">Стоимость с установкой</p> 
             <p class="counter-one">0&nbsp;<span class="currency">грн.</span></p> 
            </div> 
            <div class="monitoring"> 
             <p class="counter-head">Стоимость мониторинга</p> 
             <p class="counter-two">0&nbsp;<span class="currency">грн./месяц</span></p> 
            </div> 
           </div> 
+0

を得なさいテキストをロシア語にしたい場合(?)これは役立つだろうので、私は理解することができます書かれたもの – Ozan

答えて

1

$('.switch input').on('change', function() { 
 
    $('.counter-' + this.id.split('-').pop()).find('span').eq(0).html(
 
     $(this).closest('tr').find('.cost').map(function() { 
 
      return +$(this).text(); 
 
     }).get().reduce(function(a,b) { 
 
      return a + b; 
 
     }) + '&nbsp;' 
 
\t \t); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td><span class="cost">400</span>&nbsp;грн.</td> 
 
    <td><span class="cost">300</span>&nbsp;грн./месяц</td> 
 
    <td> 
 
     <label class="switch"> 
 
     <input type="checkbox" id="cost-one"> 
 
     <div class="slider round"></div> 
 
     </label> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td><span class="cost">700</span>&nbsp;грн.</td> 
 
    <td><span class="cost">800</span>&nbsp;грн./месяц</td> 
 
    <td> 
 
     <label class="switch"> 
 
     <input type="checkbox" id="cost-two"> 
 
     <div class="slider round"></div> 
 
     </label> 
 
    </td> 
 
    </tr> 
 
</table> 
 

 
<div class="counter-wrapper"> 
 
    <div class="install"> 
 
    <p class="counter-head">Стоимость с установкой</p> 
 
    <p class="counter-one"><span>0&nbsp;</span><span class="currency">грн.</span></p> 
 
    </div> 
 
    <div class="monitoring"> 
 
    <p class="counter-head">Стоимость мониторинга</p> 
 
    <p class="counter-two"><span>0&nbsp;</span><span class="currency">грн./месяц</span></p> 
 
    </div> 
 
</div>

+0

adeneoそれはうまく動作します、ありがとうございます。しかし、最初のチェックボックスをチェックすると、最初のフィールドの結果は400と2番目のカラム300になり、2番目のカラムをチェックすると結果は最初のカラム1100になります(400 + 700)と2番目の1100(300 + 800)は、私にこのことをどうすればいいのかを示すことができます –

+0

@DimaVleskov - それはちょっと混乱していて、これはあなたが探しているものです - > [** FIDDLE **] https://jsfiddle.net/surys6um/) – adeneo

+0

adeneo本当に助けてくれてありがとうございました。あなたがコメントを書いて、これを行う方法を説明しようとしたことは素晴らしいことです –

1
  • のようなものが確認され、入力
  • を選択選択された入力
  • に関連の
  • 取得原価番号はコスト番号の一部は

$("button").on("click", function() { 
 
    var costs = $("input:checked").parents("tr").find(".cost"); //get .cost elements of the checked inputs 
 
    
 
    var total = 
 
     $.map(costs, function(i, v) { return parseInt($(i).text()); }) //get an array of cost numbers 
 
      .reduce(function(preval, cval) { return preval + cval }, 0); //get the sum of cost numbers 
 
    
 
    console.log(total); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Calculate</button> 
 
<hr/> 
 

 
<table> 
 
    <tr> 
 
    <td><span class="cost">400</span>&nbsp;грн.</td> 
 
    <td><span class="cost">300</span>&nbsp;грн./месяц</td> 
 
    <td> 
 
     <label class="switch"> 
 
     <input type="checkbox" id="cost-one" /> 
 
     <div class="slider round"></div> 
 
     </label> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td><span class="cost">700</span>&nbsp;грн.</td> 
 
    <td><span class="cost">800</span>&nbsp;грн./месяц</td> 
 
    <td> 
 
     <label class="switch"> 
 
     <input type="checkbox" id="cost-two" /> 
 
     <div class="slider round"></div> 
 
     </label> 
 
    </td> 
 
    </tr> 
 
</table> 
 

 

 
<div class="counter-wrapper "> 
 
    <div class="install "> 
 
    <p class="counter-head ">Стоимость с установкой</p> 
 
    <p class="counter-one ">0&nbsp;<span class="currency ">грн.</span> 
 
    </p> 
 
    </div> 
 
    <div class="monitoring "> 
 
    <p class="counter-head ">Стоимость мониторинга</p> 
 
    <p class="counter-two ">0&nbsp;<span class="currency ">грн./месяц</span> 
 
    </p> 
 
    </div> 
 
</div>

関連する問題