如何将 jQuery 放入 <script> 属性中?

How can I put jQuery in <script> attribute?

如果我编写如下代码,条纹模态按钮将可见。

<script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c"
    data-amount="2000"
    data-name="Oyon Shop"
    data-description="Thank you for puchasing!"
    data-image="/img/demo.png"
    data-locale="auto">
</script>

我的数据量值为$('#amount').val()。所以我做了以下方式。

<script>
    $("<script>", {
      src:"https://checkout.stripe.com/checkout.js",
      class: "stripe-button",
      "data-key": "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c",
      "data-amount": $('#amount').val(),
      "data-name": "Oyon Shop",
      "data-description": "Thank you for puchasing!",
      "data-image": "/img/demo.png",
      "data-locale": "auto",
    }).appendTo("head");
</script>

但是之后,条纹支付按钮就看不到了。你能帮我找出错误吗?

你可以像这样在脚本标签中添加属性值, 试试这个:

$( document ).ready(function() {
  $("script").attr("data-amount",$('#amount').val())
});

您实际上可以使用 appendTo 这样做:

$("<script>", {
  src:"https://checkout.stripe.com/checkout.js",
  class: "stripe-button",
  "data-key": "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c",
  "data-amount": $('#amount').val(),
  "data-name": "Oyon Shop",
  "data-description": "Thank you for puchasing!",
  "data-image": "/img/demo.png",
  "data-locale": "auto",
}).appendTo("head");

或使用传统方式:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://checkout.stripe.com/checkout.js';
script.setAttribute('class', "stripe-button");
script.setAttribute("data-key", "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c");
script.setAttrubute("data-amount", document.querySelector('#amount').value);
script.setAttribute("data-name", "Oyon Shop");
script.setAttribute("data-description", "Thank you for puchasing!");
script.setAttribute("data-image", "/img/demo.png");
script.setAttribute("data-locale", "auto");

document.getElementsByTagName('head')[0].appendChild(script);
  • 你可以有这个代码

      $("script").attr("data-amount",$('#amount').val())
    

    在您自己的用户定义方法中。

  • $('#amount').val() 在调用 .ready() 方法时可能没有值。

  • 所以把它放在你定义的任何函数中是有意义的,这样你就可以把它放在你确定 $('#amount') 的地方。 val() 届时将具有所需的值。