0

再次,再次,再次......我的Javascript / jQuery知识问题。这一次,我想在选择单选值时显示一行。我迷失了需要显示行的部分。

这是行:

            <tr class="others" id="others" style="display:none;">
            <th colspan="2"><?php _e('Others', 'shop'); ?></th>
            <td><?php echo fee; ?>&nbsp;&euro;</td>
            </tr>

这是jQuery:

      $(document).ready(function() {
      $('input').click(function(){
      var isChecked = $('#payment_method_paypal').prop('checked');
      // make the row appear appear if "payment_method_paypal" is checked
      });  

我尝试使用警报并且它可以工作,但是对于行,我尝试了我在 Stack Overflow 和谷歌上找到的每一个解决方案,但无法使其工作。

4

3 回答 3

3

您可以将布尔值传递给 jquery切换方法

.toggle(显示或隐藏)

一个布尔值,指示是显示还是隐藏元素。

这应该工作

var isChecked = $('#payment_method_paypal').prop('checked');
$('#others').toggle(isChecked); //show/hide based on the bool

小提琴

于 2012-09-26T11:44:23.313 回答
1

尝试

$('#others').hide();

$('#others').show();

隐藏和显示该行。

于 2012-09-26T11:42:59.533 回答
1

html

<table>
<tr> <td>-------------------</td></tr>
<tr> <td class="trData">-------SHOW------</td></tr>
<tr> <td>-------------------</td></tr>
</table>

<div id="container">
  <input type="radio" name="colors" id="red" value="show" checked/>Show<br />
  <input type="radio" name="colors" id="blue" value="hide" />Hide<br />
</div>  

JS

$("#container").find("input[type=radio]:checked").on("click", function() {
    if($(this).attr('value')=='show')
    {
        $(".trData").show()
    }else{
        $(".trData").hide()
    }
});​

JS2更紧凑,但在这种情况下,您需要在单选按钮中设置正确的值

$("#container").find("input[type=radio]:checked").on("click", function(event) {
    var op= $(this).attr('value');
    jQuery.globalEval('$(".trData").'+op+'()')
});​

演示

​</p>

于 2012-09-26T11:53:13.843 回答