【问题标题】:Functions not running when called? [closed]调用时函数不运行? [关闭]
【发布时间】:2017-01-02 10:15:23
【问题描述】:

我无法让我的 javascript 代码正常工作。我的目标是能够将新的电视剧链接添加到某种数据库中,然后当我单击一个按钮时,它们会在单独的选项卡中全部打开。但是,截至目前,当我单击添加系列按钮时,它不会保存到 urlArray 中。帮忙?

<!DOCTYPE HTML>
<html>
    <head>
  <script type="text/javascript">   
  function AddSeries() {
    url = getElementById('serieslink');
    urlArray = [];
    urlArray.push(url);
  }
  <script type="text/javascript">
  function clickyClick() {
    for (url in urlArray) {
      window.open(url,'_blank');
    }
  }
    </head>
  <body>
  <form> Series Name:
  <input type = "text"
name = "series1name"
id = "seriesname" > <br>
  Series Link:
  <input type = "text"
name = "series1link"
id = "serieslink" >
  </form> <br>
  <button onclick = "AddSeries()" > Add A New Series </button><br> 
  <button onclick = "clickyClick()" > Open Incomplete Series </button>

【问题讨论】:

  • 您的 HTML 已损坏。修复它!
  • 您介意告诉我发生了什么问题吗?我没看到
  • 那里有很多问题。你只需要一个&lt;script&gt; 并且你必须在&lt;/head&gt; 之前用&lt;/script&gt; 关闭它……每次你调用AddSeries() 你首先将urlArray 设置为一个空数组。即使这样,它也没有在任何地方声明,将var urlArray = []; 放在 AddSeries 函数上方,将其从函数中删除。 …
  • 它是如此明显和普遍以至于你没有看到它意味着你不知道什么是合法的 HTML。你最好研究一下,而不是猜测它是如何工作的。

标签: javascript html


【解决方案1】:

1- 你应该关闭脚本标签。

2- 您不需要为顺序脚本打开单独的脚本标签。

3- 您必须将 urlArray 的范围更改为全局。您可以通过在定义之前和函数外部添加 var 来实现。

<script type="text/javascript">   
var    urlArray = [];
function AddSeries() {
    url = getElementById('serieslink');
    urlArray.push(url);
}

function clickyClick() {
    for (url in urlArray) {
      window.open(url,'_blank');
    }
}
</script>

【讨论】:

    【解决方案2】:

    您似乎没有关闭 &lt;script&gt; 标记。看看 javascript 控制台——它应该告诉你一些非常相似的东西。

    JavaScript 的事情,在大多数情况下,当出现这样的错误时,它会停止评估页面上的任何代码。

    【讨论】: