从onclick函数访问javascript数组

时间:2017-02-20 19:13:33

标签: javascript jquery arrays

我正在使用jQuery并在document.ready上填充数组。

在我的页面中,我有一些带有点击事件的元素。我在document.ready函数之外定义了该函数。

我似乎无法弄清楚如何从我的onclick函数中访问该数组变量。

为了简化,我想这样的工作:

$(document).ready(function(){
  var artists = new Array();
  artists.push('item1');
  artists.push('item2');
});

function clickLink() {
  alert(artists[0]);
}

4 个答案:

答案 0 :(得分:3)

许多方法,最简单的方法之一,在.ready()函数中移动您的点击操作。你需要将它绑定到那里的元素而不是内联属性:

$(document).ready(function(){
  var artists = new Array();
  artists.push('item1');
  artists.push('item2');

  $('#idOfTheElement').click(function() {
    alert(artists[0]);
  });
});

答案 1 :(得分:2)

嗨,你失去了创建数组的范围,所以有两种方法可以解决它

全部放在同一范围内:

    $(document).ready(function(){
      var artists = new Array();
      artists.push('item1');
      artists.push('item2');
    function clickLink() {
      alert(artists[0]);
    }
    });

将数组声明为全局:

var artists = new Array();
$(document).ready(function(){

      artists.push('item1');
      artists.push('item2');

    });
function clickLink() {
      alert(artists[0]);
    }

答案 2 :(得分:1)

您必须在artists函数之外声明document.ready()数组,并将该函数与click事件绑定。

var artists = new Array();

$(document).ready(function() {
  artists.push('item1');
  artists.push('item2');
});

$('button').click(function() {
  console.log(artists[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>click</button>

答案 3 :(得分:0)

一个简单的解决方案是在声明数组变量时删除var关键字,这将使变量成为全局且不推荐使用,另一个解决方案是在函数外部声明数组,以便可以从onclick引用它功能。