我很想摆弄javascript - 但这就是我想要实现的目标。
我有这样的代码:
$('#numberItems').keyup(function () {
var num = parseInt($(this).val());
var price = parseInt($('#price').text());
var.cost = num * price
$('#total').text(cost);
}).keyup();
这对我正在做的事情确实很好 - 但我想做的是将成本变量并将其粘贴在链接中 - 例如:
<a href="http://www.google.com/<script>document.write(cost)</script>">Googly</a>
我意识到,要使变量成为全局变量,我需要坚持使用函数,但是我的计算如何保存到它?
答案 0 :(得分:0)
在脚本文件的顶层,在任何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并将其插入到您的页面中。
答案 1 :(得分:0)
除非您在其他地方访问变量,否则实际上并不需要将变量设为全局变量。如果您希望在用户更改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。
答案 2 :(得分:0)
远离全球变量!的xD
它们是解决所有问题的最简单方法,但它们会给您带来很多困难 稍后如果你升级你的代码!
如上所述,在id
标记中添加<a>
属性
然后只需在上面的代码中添加$("#id_you_added").attr("href","<a href='http://www.google.com/"+cost+"'>Googly</a>");
,以便动态修改
我希望这会有所帮助