2016-06-22 2 views
5

Я пытаюсь изменить значение td с нажатой кнопкой. Я пробовал несколько способов, но никто не работал. Если пользователь нажал кнопку Показать USD, то в столбце нажмите только USD значений. Если пользователь нажимает GBP, столбец должен показывать GBP значений. Я не знаю, что это правильный способ сделать это. Любая помощь высоко ценится.Изменить значение таблицы с помощью jquery

$('.btn-usd').on('click', function(){ 
 
    $("cu-usd").removeClass(hide); 
 
    $("cu-gbp").addClass(hide); 
 
}); 
 
$('.btn-gbp').on('click', function(){ 
 
    $("cu-gbp").removeClass(hide); 
 
    $("cu-usd").addClass(hide); 
 
});
.hide { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-usd">show USD</div> 
 
<div class="btn-gbp">show GBP</div> 
 
<table> 
 
    <tbody> 
 
     <tr> 
 
      <td> 
 
       <div class="cu-usd">$10</div> 
 
       <div class="cu-gbp">£7.10</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$20</div> 
 
       <div class="cu-gbp">£14.20</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$30</div> 
 
       <div class="cu-gbp">£21.30</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$40</div> 
 
       <div class="cu-gbp">£28.10</div> 
 
      </td> 
 
     </tr> 
 
    </tbody> 
 
</table> 
 
<table> 
 
    <tbody> 
 
     <tr> 
 
      <td> 
 
       <div class="cu-usd">$100</div> 
 
       <div class="cu-gbp">£70.10</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$200</div> 
 
       <div class="cu-gbp">£140.20</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$300</div> 
 
       <div class="cu-gbp">£210.30</div> 
 
      </td> 
 
      <td> 
 
       <div class="cu-usd">$400</div> 
 
       <div class="cu-gbp">£280.10</div> 
 
      </td> 
 
     </tr> 
 
    </tbody> 
 
</table>

+0

СМОТРИТЕ ЭТО: http://stackoverflow.com/questions/14763148/change-table-cell-value-jquery –

+0

имеют некоторые синтаксические ошибки, в противном случае его работой – hsh

ответ

3

$(".cu-usd").removeClass('hide'); 
 
$(".cu-gbp").addClass('hide'); 
 
$('.btn-usd').on('click', function(){ 
 
    \t $(".cu-usd").removeClass('hide'); 
 
    \t $(".cu-gbp").addClass('hide'); 
 
    }); 
 
    $('.btn-gbp').on('click', function(){ 
 
    \t $(".cu-gbp").removeClass('hide'); 
 
    \t $(".cu-usd").addClass('hide'); 
 
    });
.hide { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-usd">show USD</div> 
 
    <div class="btn-gbp">show GBP</div> 
 
    
 
    
 
    <table> 
 
    \t <tbody> 
 
    \t \t <tr> 
 
    \t \t \t <td><div class="cu-usd">$10</div><div class="cu-gbp">£7.10</div></td> 
 
    \t \t \t <td><div class="cu-usd">$20</div><div class="cu-gbp">£14.20</div></td> 
 
    \t \t \t <td><div class="cu-usd">$30</div><div class="cu-gbp">£21.30</div></td> 
 
    \t \t \t <td><div class="cu-usd">$40</div><div class="cu-gbp">£28.10</div></td> 
 
    \t \t </tr> 
 
    \t </tbody> 
 
    </table> 
 
    <table> 
 
    \t <tbody> 
 
    \t \t <tr> 
 
    \t \t \t <td><div class="cu-usd">$100</div><div class="cu-gbp">£70.10</div></td> 
 
    \t \t \t <td><div class="cu-usd">$200</div><div class="cu-gbp">£140.20</div></td> 
 
    \t \t \t <td><div class="cu-usd">$300</div><div class="cu-gbp">£210.30</div></td> 
 
    \t \t \t <td><div class="cu-usd">$400</div><div class="cu-gbp">£280.10</div></td> 
 
    \t \t </tr> 
 
    \t </tbody> 
 
    </table>

+0

Вы забыли _quotes_ вокруг 'hide' –

4

Есть 2 проблемы

  1. селектор класса начинается с .
  2. шкурой это строка должна быть в кавычках

После будет работать

$('.btn-usd').on('click', function(){ 
     $(".cu-usd").removeClass("hide"); 
     $(".cu-gbp").addClass("hide"); 
    }); 
    $('.btn-gbp').on('click', function(){ 
     $(".cu-gbp").removeClass("hide"); 
     $(".cu-usd").addClass("hide"); 
    }); 
+0

Спасибо, это правильный путь ? – techies

+2

@techies - Да. – nikhil

1

$('.btn-usd').on('click', function() { 
 

 
    $(".cu-usd").removeClass('hide');//missing . 
 
    $(".cu-gbp").addClass('hide');//missing . 
 
}); 
 
$('.btn-gbp').on('click', function() { 
 
    $(".cu-gbp").removeClass('hide');//missing . 
 
    $(".cu-usd").addClass('hide');//missing . 
 
});
.hide { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-usd">show USD</div> 
 
<div class="btn-gbp">show GBP</div> 
 

 

 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td> 
 
     <div class="cu-usd">$10</div> 
 
     <div class="cu-gbp">£7.10</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$20</div> 
 
     <div class="cu-gbp">£14.20</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$30</div> 
 
     <div class="cu-gbp">£21.30</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$40</div> 
 
     <div class="cu-gbp">£28.10</div> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td> 
 
     <div class="cu-usd">$100</div> 
 
     <div class="cu-gbp">£70.10</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$200</div> 
 
     <div class="cu-gbp">£140.20</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$300</div> 
 
     <div class="cu-gbp">£210.30</div> 
 
     </td> 
 
     <td> 
 
     <div class="cu-usd">$400</div> 
 
     <div class="cu-gbp">£280.10</div> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table>

Отсутствует . в имени класса

+0

[jsfiddle] (https://jsfiddle.net/1f6nqs8d/1/) – Marcus

+0

@guradio это правильный путь? – techies

+0

Вы также можете использовать '.hide() и .show()' @techies [как это] (http://stackoverflow.com/questions/37966176/change-table-value-using-jquery/37966406#37966406) –

1

Есть некоторые проблемы с вашим кодом.

$('.btn-usd').on('click', function(){ 
    $(".cu-usd").removeClass('hide'); 
    $(".cu-gbp").addClass('hide'); 
}); 
$('.btn-gbp').on('click', function(){ 
$(".cu-gbp").removeClass('hide'); 
$(".cu-usd").addClass('hide'); 
}); 

Использование . оператора для класса элемента и завернуть шкурку в кавычки, как она передается в виде строки.

Также для оптимизации выведите $(".cu-usd") и $(".cu-gbp") в переменных.

+0

Спасибо @Saiyam :-) – techies

1

Вы также можете сделать это с .hide() и .show() и не имеют назначить класс. Результат тот же.

и как упомянуто выше отсутствует . in имя-класса. Но я думаю, что вы это знаете.

$('.btn-usd').on('click', function(){ 
 
     $(".cu-usd").show(); 
 
     $(".cu-gbp").hide(); 
 
     }); 
 
    $('.btn-gbp').on('click', function(){ 
 
     $(".cu-gbp").show(); 
 
     $(".cu-usd").hide(); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="btn-usd">show USD</div> 
 
<div class="btn-gbp">show GBP</div> 
 
    <table> 
 
    \t <tbody> 
 
    \t \t <tr> 
 
    \t \t \t <td><div class="cu-usd">$10</div><div class="cu-gbp">£7.10</div></td> 
 
    \t \t \t <td><div class="cu-usd">$20</div><div class="cu-gbp">£14.20</div></td> 
 
    \t \t \t <td><div class="cu-usd">$30</div><div class="cu-gbp">£21.30</div></td> 
 
    \t \t \t <td><div class="cu-usd">$40</div><div class="cu-gbp">£28.10</div></td> 
 
    \t \t </tr> 
 
    \t </tbody> 
 
    </table> 
 
    <table> 
 
    \t <tbody> 
 
    \t \t <tr> 
 
    \t \t \t <td><div class="cu-usd">$100</div><div class="cu-gbp">£70.10</div></td> 
 
    \t \t \t <td><div class="cu-usd">$200</div><div class="cu-gbp">£140.20</div></td> 
 
    \t \t \t <td><div class="cu-usd">$300</div><div class="cu-gbp">£210.30</div></td> 
 
    \t \t \t <td><div class="cu-usd">$400</div><div class="cu-gbp">£280.10</div></td> 
 
    \t \t </tr> 
 
    \t </tbody> 
 
    </table>

Смежные вопросы