繁体   English   中英

修改全局javascript变量并在HTML中访问它们

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM