首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript:变量的动态值没有被更新。为什么会发生这种事?

JavaScript:变量的动态值没有被更新。为什么会发生这种事?
EN

Stack Overflow用户
提问于 2015-08-31 19:54:06
回答 4查看 79关注 0票数 1

我最近开始学习JavaScript和jQuery,我可能被一个新手错误困住了。我试图让代码尽可能容易阅读,所以我决定将HTML块与另一个变量连接起来。级联变量包含一个数值,每当我使用包含所有内容、html和其他变量的变量时,这个数值就会更新。

就像这样:

代码语言:javascript
复制
var variableA  = 1;
var variableB = "<h4>Header number : "+ variableA +"</h4>";

var addHeader = funtcion(){
  $('#mainDiv').prepend(variableB);
  variableA++;
};

当我稍后在代码中调用该函数时,它总是打印“头号1",如何使它打印正确的/所需的值?

报头编号1

标头编号2

标头编号3

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-31 19:56:58

在您第一次存储variableB之后,它是一个字符串,而更新variableA不会更新它。为了解决这个问题,每当调用函数时都要生成variableB:

代码语言:javascript
复制
var variableA  = 1;

var addHeader = funtcion(){
  var variableB = "<h4>Header number : "+ variableA +"</h4>";
  $('#mainDiv').prepend(variableB);
  variableA++;
};
票数 3
EN

Stack Overflow用户

发布于 2015-08-31 20:00:04

如果您想每次调用它时迭代它,可以尝试如下:

代码语言:javascript
复制
var headerIndex = 1;
var addHeader = function(){
  $('#mainDiv').prepend("<h4>Header number: " + (headerIndex++) + "</h4>");
};

示例:http://codepen.io/anon/pen/OyJpQq

您可能希望使用$('#mainDiv').html(...)而不是prepend(...)来让它完全更新div的内容.

票数 1
EN

Stack Overflow用户

发布于 2015-08-31 20:00:26

问题是variableB是字符串。它不是一个引用,所以在函数中使用var variableB = "<h4>Header number : "+ variableA +"</h4>";来创建新的字符串--每次函数调用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32318924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档