2012-11-15 2 views
-2

값의 테이블이 있습니다. 환율로 셀의 값을 변경하기 위해 통화 링크를 클릭하여 JQuery를 사용할 수 있습니까? 이 정적 예제 테이블<td>의 값을 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=1eur=1.3) 감사합니다!

+2

네, 가능합니다, 당신은 무엇을 시도하십시오? – undefined

+0

귀하의 바이올린에는 JavaScript/JQuery가 없습니다. 당신이 시도한 것을 보여주십시오. – codingbiz

+0

@undefined 저는 .val()로 시도했지만,이 경우에 올바른 방법이 아닌 것 같습니다. – halofourteen

답변

4

먼저 모든 원화 환율의 기준으로 사용할 수 있도록 원래의 원화 가치를 저장해야합니다. A 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)); 
    }); 
}); 

Example fiddle

참고 나는 또한 단지이 방법이 얼마나 확장 보여 GBP을 추가했다.

+0

parseFloat는 기수를 취하지 않습니다 .. –

+0

@ Sushanth-- 좋은 캐치, 고마워요. –

+0

당신은 환영합니다 :) +1 .. 데이터 - * 속성의 우수 사용 ... –

0

당신은 클래스를 선택하고 수정할 수 있습니다 :

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

이 코드는 테스트되지 않은,하지만 당신에게 그것을 수행하는 방법에 대한 힌트를 제공 갈까요.

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"); 
}); 

LIVE DEMO

+0

반복적으로 교환 링크를 클릭하면 어떤 일이 일어나는 지 확인하십시오. –

+0

@RoryMcCrossan : 예, 버그가 있습니다. 이제 저는 고쳐졌습니다. –

+0

계속 EUR를 클릭하면 계속됩니다. 논리는 페이지로드시와 같이 값을 계산하는 것이 아니라 끊임없이 변화하는 숫자로 작업 할 때 정직하다는 약간의 결함이 있습니다. –

관련 문제