[英]modifying global javascript variables and accessing them in the HTML
我对使用javascript很陌生-但这是我想要实现的目标。
我有这样的代码:
$('#numberItems').keyup(function () {
var num = parseInt($(this).val());
var price = parseInt($('#price').text());
var.cost = num * price
$('#total').text(cost);
}).keyup();
这对于我正在做的事情确实很有效-但我想做的就是获取cost变量并将其粘贴在链接中-例如:
<a href="http://www.google.com/<script>document.write(cost)</script>">Googly</a>
我意识到,要使变量成为全局变量,我需要坚持使用该函数,但是我的计算如何保存到该函数呢?
在脚本文件的顶层,任何document.ready()处理程序之外,添加以下内容:
var cost;
然后,您可以通过不使用var
这样声明它而在任何地方引用它:
$('#numberItems').keyup(function () {
var num = parseInt($(this).val());
var price = parseInt($('#price').text());
cost = num * price
$('#total').text(cost);
}).keyup();
您不能将该变量与document.write()
一起使用,因为document.write()
仅在解析文档时使用,并且在加载文档之前不会初始化您的cost
变量。 加载文档后使用document.write()
会导致当前文档被擦除并开始新的文档。
您可以使用cost
变量来动态设置href
(在加载文档之后),如下所示:
<a id="myLink" href="http://www.google.com/">Googly</a>
$("#myLink").attr("href", "http://www.google.com/" + cost);
请注意,您只是使用字符串数学将成本添加到现有字符串中。
或者,您可以使用jQuery从头开始创建链接,将其设置为href并将其插入页面。
除非您在其他位置访问它,否则实际上不需要将变量设置为全局变量。 如果您希望在用户更改ID为numberItems的元素时发生URL更改,则实际上需要向该A元素添加ID属性,然后使用javascript更新HREF属性。
<a id="aElementToChange" href="http://www.google.com/<script>document.write(cost)</script>">Googly</a>
和javascript(在您的$('#total')。text(cost);行之后):
var aElementToChange = document.getElementById("aElementToChange");
aElementToChange.setAttribute("href", "http://www.google.com/" + cost);
您可以根据需要将javascript更改为jquery。
远离全局变量! xD
它们是解决所有问题的最简单方法,但是如果您升级代码,它们将在以后给您带来很多麻烦!
如前所述,将id
属性添加到<a>
标记,然后只需添加$("#id_you_added").attr("href","<a href='http://www.google.com/"+cost+"'>Googly</a>");
在上面的代码中,以便对其进行动态修改
我希望这有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.