首页 > 解决方案 > 单击按钮时调用数组

问题描述

我有以下 jquery 数组,它从表中的两列中获取值并显示它们的值:

var myCollection = [];
$('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function() {
  var row = this;
  var myObj = {

    label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
    opis: valuefromType($(row).find($(row).find('td:eq(2)').children()))
  };
  myCollection[myCollection.length] = myObj;
});

function valuefromType(control) {
  var type = $(control).prop('nodeName').toLowerCase();
  switch (type) {
    case "input":
      return $(control).val();
      break;
    case "span":
      return $(control).text();
      break;
    case "select":
      return $(control).val();
      break;

  }
}

第一列的名称是'label',第二列的名称是'opis' 结果:

myCollection
(6) […]
​
0: Object { label: "1", opis: "Test1" }
​
1: Object { label: "2", opis: "Test2" }
​
2: Object { label: "3", opis: "Test3" }
​
3: Object { label: "5", opis: "1" }
​
4: Object { label: "9", opis: "Test5" }
​
5: Object { label: "15", opis: "Test6" }
​
length: 6

我遇到的问题是此代码仅适用于页面重新加载,我需要它在按钮单击时起作用。

按钮 :

<button id="myButton"  type="button">Save</button>

我尝试了很多东西,myCollection 数组始终未定义。

例子:

$(function() {
  $('#myButton').click(function() {
    var myCollection = [];
    $('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function() {
      var row = this;
      var myObj = {

        label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
        opis: valuefromType($(row).find($(row).find('td:eq(2)').children()))
      };
      myCollection[myCollection.length] = myObj;
    });

    function valuefromType(control) {
      var type = $(control).prop('nodeName').toLowerCase();
      switch (type) {
        case "input":
          return $(control).val();
          break;
        case "span":
          return $(control).text();
          break;
        case "select":
          return $(control).val();
          break;


      }
    }
  });
});

有人可以帮助我通过 #myButton click 从数组中获取值吗?

提前致谢 !

标签: javascriptjquery

解决方案


推荐阅读