javascript - JQuery 冲突(也许?)基于单选框隐藏/显示 Div

标签 javascript jquery html wordpress woocommerce

这让我发疯。我尝试了各种不同的方法来做到这一点。尝试根据单选框选择显示/配置 div。以下是我的 main.js 代码:

$("input[name='payment_method']").click(function () {
    if ($(this).attr("id") == "payment_method_cod") {
        $("#checkout_insurance").show();
    } else {
        $("#checkout_insurance").hide();
    }
});

HTML:

<div id="checkout_insurance">
    <h2>Checkout with Insurance</h2>
</div>

<div id="payment" class="woocommerce-checkout-payment">

    <ul class="payment_methods methods">
        <li class="payment_method_cod">
            <input id="payment_method_cod" type="radio" class="input-radio" name="payment_method" value="cod" data-order_button_text="" checked="checked">

            <label for="payment_method_cod">
                ...
        </li>
        <li class="payment_method_firstdata">
            <input id="payment_method_firstdata" type="radio" class="input-radio" name="payment_method" value="firstdata" data-order_button_text="">

            <label for="payment_method_firstdata">
                ....
        </li>
    </ul>
</div>

我无法去上类。如果我将 jQuery 的另一个 CDN 放在页脚上,该函数可以工作,但是会弄乱很多其他东西。 jQuery 正在加载到标题上。我当前使用 jQuery 1.11.3。

任何帮助将不胜感激。 谢谢!

最佳答案

使用:checked选择器检查id为 payment_method_cod的单选元素是否被选中。

$('# payment_method_cod:checked') 将根据单选按钮是否选中以及切换的条件返回true/false code> 它,当 true 时,将显示元素 #checkout_insurance。 假设代码中使用的 id 是唯一的。

演示

$(document).on('change', "input[name='payment_method']", function() {
  $("#checkout_insurance").toggle($('#payment_method_cod').is(':checked'));
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="checkout_insurance">
  <h2>Checkout with Insurance</h2>
</div>

<div id="payment" class="woocommerce-checkout-payment">

  <ul class="payment_methods methods">
    <li class="payment_method_cod">
      <input id="payment_method_cod" type="radio" class="input-radio" name="payment_method" value="cod" data-order_button_text="" checked="checked">

      <label for="payment_method_cod">Payment</label>
      ...
    </li>
    <li class="payment_method_firstdata">
      <input id="payment_method_firstdata" type="radio" class="input-radio" name="payment_method" value="firstdata" data-order_button_text="">

      <label for="payment_method_firstdata">FirstData</label>
      ....
    </li>
  </ul>
</div>

关于javascript - JQuery 冲突(也许?)基于单选框隐藏/显示 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33096588/

相关文章:

javascript - 在下拉列表中使用 jquery

javascript - 将带有标签的选择标签添加到 HTML 以动态 jQuery

jquery - 我将如何使鼠标悬停元素在我的时间轴中独一无二?

html - block 的垂直和水平居中

html - 使用 html/css,我想在我的网站底部自动生成一个引用书目,类似于 latex 的\bibliography 命令

javascript - 如何在 JavaScript 中获取两个对象数组之间的差异

javascript - 水平对齐映射列表(vanilla js)

javascript - 在一个应用程序中同时使用 ExtJs 和 JQuery?

javascript - 在没有 innerHTML 的情况下更改 JavaScript 中的 HTML

javascript - 如果用 () 引用类方法,为什么不需要绑定(bind)它呢?