【问题标题】:How to update Javascript Global Array?如何更新 Javascript 全局数组?
【发布时间】:2014-12-19 15:22:31
【问题描述】:

我无法访问更新后的全局数组 (a1),它显示的是一个空数组。

<script type="text/javascript">

 var video_object = { title1:"", desc:"", link1:"",url1:""};
 var a1 = [];

 alert(a1.toSource()); // Inital array Value
$(function() {

    $("#upload1").click(function(){

        video_object.title1 = $("#title1").val();       
        video_object.desc = $("#desc1").val();                  
        video_object.link1 = $("#extra1").val();    
        video_object.url1  = $("#path1").val();     
        a1.push(video_object);

        alert(a1.toSource()); // Array Value updated initially (but gets null value afterwards)
    }); });


</script>

【问题讨论】:

  • 那么,这里的问题似乎是什么?您刚刚给了我们一段代码,是否愿意描述它以及您遇到的问题?
  • 它在哪里显示“空数组”?什么时候?
  • toSource 来自哪里?
  • 每次单击 $("#upload1") 时,您都将相同的对象 video_object 添加到 a1 数组中。这可能不是您想要的。
  • 那么它应该有很多对同一个对象的引用,不应该是null

标签: javascript jquery arrays global-variables javascript-objects


【解决方案1】:

似乎函数 Object.prototype.toSource() 仅在 Firefox 中支持。

MDN

【讨论】:

  • 问题说数组为空,而不是因为toSource 未定义而引发错误。虽然这是代码的问题,但这不是问题要问的问题。
  • @Quentin 是时候将问题作为 no-repro/too-localized 结束了,然后呢?
  • 您链接了俄语版本。最好从链接中删除语言,以便人们以他们的语言看到页面。
  • @JanDvorak — 我认为更像是“不清楚被问到什么”
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
【解决方案2】:

我认为你想这样做:

<script type="text/javascript">
  var a1 = [];

  alert(a1.toSource()); // Inital array Value
  $(function() {

    $("#upload1").click(function(){
      var video_object = { title1:"", desc:"", link1:"",url1:""};

      video_object.title1 = $("#title1").val();     
      video_object.desc = $("#desc1").val();                    
      video_object.link1 = $("#extra1").val();  
      video_object.url1  = $("#path1").val();       
      a1.push(video_object);

      alert(a1.toSource());
    });
  });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2020-09-05
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多