我有一个HTMLScriptObject,我试图修改数据属性。我需要计算数据量并设置在脚本中使用但没有运气的值。我有= javascript正常工作(根据日志中的最终值),但我似乎无法在下面的标记中更改数据量属性。以下是相关的HTML标记:
<script src="/static/js/filename.js"></script>
<form action="" method="POST">
<script id="stripe-button"
src="https://checkout.stripe.com/checkout.js"
data-amount="0"
...
>
</script>
</form>
这是相关的filename.js:
$(document).ready(function(){
$( ".btn-service" ).click(function(){
//add service price to the subtotal
subtotalObj = $( "#subtotal" );
price = parseInt($(this).data("price"));
previousSubTotal = parseInt($( "#subtotal" ).text());
if ($(this).hasClass( "btn-added" )) {
nextSubTotal = previousSubTotal + price;
$(this).text("Remove From Cart");
}
else if ($(this).hasClass( "btn-add" )) {
nextSubTotal = previousSubTotal - price;
$(this).text("Add To Cart");
}
//update the values
subtotalObj.text(nextSubTotal);
var stripe = document.getElementById('stripe-button');
stripe.setAttribute('data-amount', nextSubTotal);
console.log(stripe.getAttribute('data-amount')); //this returns the correct amount.
});
});
data-amount属性末尾的控制台日志返回我正在寻找的值,但是当我查看标记源时,数据量值仍为0.不确定为什么数据量是没有被改变。
我也试过使用attr()方法,但是JQuery发出了一条错误信息:Object#没有方法'attr'。我也尝试过使用数据('金额',值),但这会产生同样的错误 - 没有方法'数据'。
答案 0 :(得分:0)
如果“在标记中”表示使用浏览器的“查看源”功能,那么您正在查看页面源,它不会更新以反映DOM更改(它是源,而不是当前文档)
使用Web检查器或调试器查看当前DOM的标记内容,或获取表单的innerHTML属性。
此外,您应该使用 var 声明所有这些变量,以使它们保持本地。