-2

値の表があります。通貨リンクをクリックして為替レートでセルの値を変更することでJQueryを使用することは可能ですか? この静的サンプル テーブル

<table border="1">
    <tr>
      <td class="currency">100</td>
      <td class="currency">200</td>
      <td class="current">now in USD</td>
    </tr>
    <tr>
      <td class="currency">150</td>
      <td class="currency">230</td>
    </tr>
    <tr>
      <td class="currency">400</td>
      <td class="currency">200</td>
    </tr>
    <tr>
      <td class="currency">550</td>
      <td class="currency">2920</td>
    </tr>
  </table>

  <a href="#" class="USD">USD</a>
  <a href="#" class="EUR">EUR</a>

Pls はjsfiddleを見てください。つまり、通貨の値をクリックすると、レートに従って再計算する必要があります。jsfiddle の私の例では、単純に値を変更する方法を理解したいと思います (たとえばusd=1 eur=1.3) ありがとう!

4

3 に答える 3

4

まず、すべての為替レートのベースとして使用できるように、元の USD の値を保存する必要があります。属性はこれdata-xに最適です。

$('.currency').each(function() {
    $(this).data('usd-value', $(this).text());
});

次に、この値に必要な為替レートを掛けるだけdataで、リンク自体の属性に保存されます。これを試して:

<a href="#" class="exchange USD" data-exchangerate="1">USD</a>
<a href="#" class="exchange EUR" data-exchangerate="1.3">EUR</a>
<a href="#" class="exchange GBP" data-exchangerate="0.63">GBP</a>
$(".exchange").click(function() {
    var rate = $(this).data('exchangerate');
    $('.currency').each(function() {
        $(this).text(parseFloat($(this).data('usd-value') * rate));
    });
});

フィドルの例

GBPこのメソッドの拡張性を示すためだけに追加したことに注意してください。

于 2012-11-15T08:31:49.320 に答える
1

あなたもこの方法を行うことができます:-

var flag = false;
$('.USD').click(function() {
    if (flag)
    {
        $('.currency').each(function() {
            $(this).text(parseFloat($(this).text() / 1.3));
        });
        flag = false;
        $('.current').text("Now in USD");
        $('.EUR').removeAttr("disabled");
    }
});
$('.EUR').click(function() {
    flag = true;
    $('.currency').each(function() {
        $(this).text(parseFloat($(this).text() * 1.3));
    });
    $('.current').text("Now in EUR");
    $(this).attr("disabled", "disabled");
});

ライブデモを参照

于 2012-11-15T08:40:06.923 に答える
0

クラスごとに選択して変更できます。

$('.currency').each(function(){
    var eurMultiplier = 1.3;
    var currentValue = parseInt($(this).html());
    var newValue = currentValue * eurMultiplier;
    $(this).html(newValue);
});

このコードはテストされていませんが、その方法についてのヒントが得られるはずです。

于 2012-11-15T08:31:23.090 に答える