Javascript Jquery数组在tr iterate中重复记录 我的表格和代码 NewsNo GeoLoc ------ ------ 1美国 2英国 3格 var GloablArr=[]; $(“#btnRefUp”)。单击(函数(){ var newssArr={}; $(“#ntbl>tbody>tr”)。每个(函数(){ newssArr['NewsNo']=$(this.find('td:eq(0)').val(); newssArr['GeoLoc']=$(this.find('td:eq(1)').val(); GloablArr.push(newssArr)

Javascript Jquery数组在tr iterate中重复记录 我的表格和代码 NewsNo GeoLoc ------ ------ 1美国 2英国 3格 var GloablArr=[]; $(“#btnRefUp”)。单击(函数(){ var newssArr={}; $(“#ntbl>tbody>tr”)。每个(函数(){ newssArr['NewsNo']=$(this.find('td:eq(0)').val(); newssArr['GeoLoc']=$(this.find('td:eq(1)').val(); GloablArr.push(newssArr),javascript,jquery,html,Javascript,Jquery,Html,您只创建了对newsArr的引用-此后,您会将相同的属性推送到它,并每次将另一个引用推送到全局数组 一个简单的修复方法是在每次迭代时重新创建一个新对象 $("#ntbl > tbody > tr").each(function () { var newssArr = {}; newssArr['NewsNo'] = $(this).find('td :eq(0)').val(); newssArr['GeoLoc'] = $(this).find('td

您只创建了对
newsArr
的引用-此后,您会将相同的属性推送到它,并每次将另一个引用推送到全局数组

一个简单的修复方法是在每次迭代
时重新创建一个新对象

$("#ntbl > tbody > tr").each(function () {
    var newssArr = {};
    newssArr['NewsNo']  = $(this).find('td :eq(0)').val();
    newssArr['GeoLoc']  = $(this).find('td :eq(1)').val();

    GloablArr.push(newssArr) <-- GlobalArr shows the final item(s) only.

});

您正在一次又一次地更新同一对象,而需要在每个方法的回调函数中初始化对象

var GloablArr = [];

$("#btnRefUp").click(function() {
  $("#ntbl > tbody > tr").each(function() {
    var newssArr = {};
    newssArr['NewsNo'] = $(this).find('td :eq(0)').val();
    newssArr['GeoLoc'] = $(this).find('td :eq(1)').val();
    GloablArr.push(newssArr) 
  });
});

或者直接生成对象并推送到数组

var GloablArr = [];

$("#btnRefUp").click(function() {
  $("#ntbl > tbody > tr").each(function() {
    GloablArr.push({
      NewsNo: $(this).find('td :eq(0)').val(),
      GeoLoc: $(this).find('td :eq(1)').val()
    })
  });
});

您甚至可以使用method而不是method来简化代码


您正在再次更新同一对象,并在循环内重新初始化
var newsarr={};
元素没有值。它们有
text()
html()
var GloablArr = [];

$("#btnRefUp").click(function() {
  $("#ntbl > tbody > tr").each(function() {
    var newssArr = {};
    newssArr['NewsNo'] = $(this).find('td :eq(0)').val();
    newssArr['GeoLoc'] = $(this).find('td :eq(1)').val();
    GloablArr.push(newssArr) 
  });
});
var GloablArr = [];

$("#btnRefUp").click(function() {
  $("#ntbl > tbody > tr").each(function() {
    GloablArr.push({
      NewsNo: $(this).find('td :eq(0)').val(),
      GeoLoc: $(this).find('td :eq(1)').val()
    })
  });
});
var GloablArr;

$("#btnRefUp").click(function() {
  GloablArr = $("#ntbl > tbody > tr").map(function() {
    return {
      NewsNo: $(this).find('td :eq(0)').val(),
      GeoLoc: $(this).find('td :eq(1)').val()
    };
  }).get(); // get the result as array
});