【问题标题】:How to replace variable content on click? [closed]如何在点击时替换可变内容? [关闭]
【发布时间】:2018-06-08 12:23:49
【问题描述】:

我有一个数组

var oldVar = ["a", "b", "c"];

该数组被某个函数使用。

function myFunction() {
 // Do stuff with oldVar.
}

我想用另一个变量的内容替换 oldVar 的内容

var newVar = ["d", "e",  "f"];

点击链接后。我试过类似的东西:

<a onclick="changeVar()">Change</a>

function changeVar() {
 oldVar = newVar;
}

但是如果我点击一个链接然后通过单独的按钮调用myFunction(),它仍然使用[“a”,“b”,c]。如何让它使用[“d”,“e”,f”]?

我做了一个工作示例here。当我单击“更改”按钮时,我希望 oldVar 为 [“d”、“e”、“f”]。我很抱歉花了我这么长时间。我白天很忙。

我有一个解决方案,但是很麻烦。它是here

【问题讨论】:

  • 你能举个例子来说明这个问题吗?
  • 这个函数内部声明了数组吗?如果是这样,请尝试在所有函数之外声明数组,这样就可以使其全局化。请发布一个更大的代码示例。
  • Javascript 变量通过引用传递以供记录,但我认为您的问题可能是范围。 Javascript 使用函数作用域而不是块作用域。您是在全局范围内还是在 chageVar 函数中声明 oldVar?
  • “a” 无效引号。
  • @epascarello 我可以试试。

标签: javascript html arrays hyperlink


【解决方案1】:

您可以将长度设置为零并使用 push 将项目插入到 oldVar

function changeVar() {
    oldVar.length = 0;
    Array.prototype.push.apply(oldVar, newVar);
    show();
}

function show() {
    console.log(oldVar);
}

var oldVar = ["a", "b", "c"],
    newVar = ["d", "e", "f"];
&lt;a onclick="changeVar()"&gt;Change&lt;/a&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多