2012-12-20 23 views
1

我有這樣的代碼:jquery的計算在不同元件不同的值與同一類

<script type="text/javascript"> 
    $("#run").click(function(){ 
     var prc = $('.hprc').html(); 
     var mval = '0.1'; 
     $('.vprc').html('$'+(prc * mval)); 
    }); 
</script> 
<table id="form1" cellpadding="0" cellspacing="0" border="1"> 
     <tr> 
      <td> 
       <div class="col_label">Col1</div> 
      </td> 
      <td> 
       <div class="col_label">col2</div> 
      </td> 
     <tr> 
      <td> 
       <input class='pos1' lid1='243' lid2='0' type='checkbox' /><label class='main_cb'>Name1</label> 
      </td> 
      <td> 
       <div class='prc'><div class='hprc'>15.00</div> 
       <div class='vprc'>$0</div></div> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <table width='100%' class='block1' cellpadding='0' cellspacing='0' border='1'> 
        <tr> 
         <td> 
          <input class='pos2' lid1='1' lid2='0' pval='1.00' type='checkbox' /><label class='sec_cb'>Name2</label> 
         </td> 
         <td> 
          <div class='prc'><div class='hprc'>1.00</div><div class='vprc'>$0</div></div> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <input class='pos3' lid1='0' lid2='2401' pval='22.00' type='checkbox' /><label class='sec_cb'>Name3</label> 
         </td> 
         <td> 
          <div class='prc'><div class='hprc'>22.00</div><div class='vprc'>$0</div></div> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input class='pos4' lid1='243' lid2='0' type='checkbox' /><label class='main_cb'>Name4</label> 
      </td> 
      <td> 
       <div class='prc'><div class='hprc'>7.00</div><div class='vprc'>$0</div></div> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <table width='100%' class='block2' cellpadding='0' cellspacing='0' border='1'> 
        <tr> 
         <td> 
          <input class='pos5' lid1='193' lid2='0' pval='9.00' type='checkbox' /><label class='sec_cb'>Name5</label> 
         </td> 
         <td> 
          <div class='prc'><div class='hprc'>9.00</div><div class='vprc'>$0</div></div> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <input class='pos6' lid2='1737' lid1='0' pval='19.00' type='checkbox' /><label class='sec_cb'>Name6</label> 
         </td> 
         <td> 
          <div class='prc'><div class='hprc'>19.00</div><div class='vprc'>$0</div></div> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
    </table> 
    <input type='button' value='calc' id='run'/> 

通過PHP生成的表,它的計數是CONT可以變化。

我想使用jquery來計算,在每行上,類'hprc'*'0.1'的值。

它只計算第一行,然後複製其餘的第一個結果。

修改表格的結構或以不同的方式命名類別不是一種選擇。

如何應用每條線的公式?

+3

需要通過。每() – Syon

+0

你也缺少了第一排的''運行它.. –

回答

0

使用jQuery .each()功能,如:

var prc = null; 

$('.hprc').each(function(){ 
    prc = $(this).html(); 
    ..... 
}) 
3

您可以使用

// for each item with class prc (the containers) 
$('.prc').each(function(){ 
    var self = $(this), 
     mval = 0.1, 
     hprc = parseFloat(self.find('.hprc').text()), // get the value of the .hprc element and convert to float number 
     vprc = self.find('.vprc'); 
    vprc.text('$' + (hprc*mval)); // store the result 
}); 

既然你正在處理的價格,你也可以計算後一輪加.toFixed(2)到2個十進制數字..

vprc.text('$' + (hprc*mval).toFixed(2)); 

D EMO在http://jsfiddle.net/gaby/uFjQc/

+0

這個效果很好。感謝您的幫助! – user1885099

0

,你可以做這樣的

$("#run").click(function() { 
    $('.vprc').html(function() { 
     return '$' + ($(this).prev('.hprc').text() * 0.1).toFixed(2); 
    }); 
});​ 

http://jsfiddle.net/7GSxS/