2016-09-01 20 views
-3

私はクラス.price(それぞれ異なる価格を示しています)を持つdivがあり、倍率があります。ユーザーが決められたサイズのラジオを選択すると、すべての価格を自動的に差し引きたいと思う。同じクラスのdiv内の値を代入する - JQuery

私は、次のコードを試してみましたが、それは最初.priceの子の乗算に変化している(すべての.priceは、同じ価格を受信して​​いる):

$('.price').each(function(){ 
$(this).html(parseFloat($(this).data('base-price'))*factor); 
}); 

私は個別に値をmutiplyできますか?

+2

私たちは、あなたがしようとしているものを正しく理解できるように、私たちのために、あなたのHTMLを投稿してください。行う。 – bipen

+0

元のコードは次のとおりです:http://danielgroppo.com/projetaqui/budget.php - jsが 'radiobuttons'を生成するため、私はコード全体を投稿しませんでした。目標はオプション(ラジオボタン)を選択するときにページの2番目のセクションで価格を更新することです。各ラジオボタンには、すべての価格を多項式で表す因子値があります。私は最後の答えとして完全に行いましたが、最初の子の更新された価格を示しています(この例で試してみてください)。 –

答えて

1

質問の説明に基づいてHTMLを想定しています。お試しください。

var factor = 0.5; 
 
changePrice(); 
 
$("input[name='selectRadio']").change(function(){ 
 
    factor = $(this).val(); 
 
    changePrice(); 
 
}); 
 
function changePrice(){ 
 
$('.price').each(function() { 
 
    $(this).html('$' + (parseFloat($(this).data('base-price')) * factor).toFixed(2)); 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<input type="radio" value="10" class="selectRadio" name="selectRadio"/>10 
 
<input type="radio" value="20" class="selectRadio" name="selectRadio"/>20 
 

 
<ul> 
 
    <li class="price" data-base-price="1.00"></li> 
 
    <li class="price" data-base-price="2.00"></li> 
 
    <li class="price" data-base-price="3.00"></li> 
 
    <li class="price" data-base-price="4.00"></li> 
 
    <li class="price" data-base-price="5.00"></li> 
 
    <li class="price" data-base-price="6.00"></li> 
 
    <li class="price" data-base-price="7.00"></li> 
 
    <li class="price" data-base-price="8.00"></li> 
 
    <li class="price" data-base-price="9.00"></li> 
 
</ul>

0
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="Scripts/jquery-3.1.0.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('input:radio[class=radio-button]').change(function() { 
      var factor = $(this).val(); 
      alert(factor); 
      $.each($('.test'), function (index, value) { 
       alert($(this).html()); 
       alert($(this).data('test-value')); 
       $(this).html('$' + (parseFloat($(this).data('test-value')) * factor)); 
      }); 
     }); 

     $('input:radio').prop('checked', false); 

    }); 
</script> 

ここに私のHTMLコードは、..です

<input type="radio" value="5" class="radio-button" id="rd1" />first(5) 
<input type="radio" value="15" class="radio-button" id="rd1" />first(15) 
<br /> 
<div class="test" data-test-value="11.8"></div> 
<div class="test" data-test-value="11.8"></div> 
<div class="test" data-test-value="1.8"></div> 
<div class="test" data-test-value="11.8"></div> 
<div class="test" data-test-value="9.8"></div> 
<div class="test" data-test-value="11.8"></div> 
<div class="test" data-test-value="5.5"></div> 
<div class="test" data-test-value="4.8"></div> 
+0

警告のみをテスト用に親切に無視します。 –

関連する問題